昨年(2011年)10月から提供されていました。スクリプト書いてデータを読んで見ました。この南岳の気象データサイトは特に冬場の北アルプスに行く方にはとても有用なサイトだと思います。このような作業にはFirefoxだとFirebugという拡張機能を入れて置くと便利です。最初にやることは南岳の気象データのWebページを観察することです。URLのルールはdateパラメータで日付を渡す形式だと分ります。URLは日付を一日づつ増やしながら今日まで廻せば、今日までの全てのデータが簡単に取れます。次にデータの部分を観察するとidが"weather-observation-table"のtableと成っています。グラフ等を作る処理が楽ですから、csvにする時に加工して置くのが良いですね。それをExcelやOpenOffice.orgで加工する方が手間がかかりません。方向性が決まったのでスクリプトにします。必要なモジュールをrequireして置き、URLの基本部分を先に定義しておきます。'http://www.yarigatake.co.jp/minamidake/weather.html?date='また、いつからの分を取り出すかの開始日をdにDateクラスの値としてセットします。Date.new(2011,10,9)todayに取り出す最終日(含まない)をセットします。ここではプログラム起動日の前日までを対象とします。Date.today出力用のCSVファイルを書込み用('w')としてオープンします。|csv|CSVに項目名の行を書込みます。配列をそのまま書込めば自動的に変換してCSVの様式で書いてくれます。['日時','気温(°C)','湿度(%)','気圧(hPa)','雨量(mm)','風速(m/s)','風向き','日射量(Watts/m2)']whileで終了日判定をして廻します。today)uriに基本部にパラメータとして日付をつけたURIを生成します。d_strNokogiriはXMLやHTMLを解析してくれるライブラリです。uriをopen-uriモジュールで拡張されたopenで開いて、NokogiriにHTMLデータとして渡します。この行だけでInternetにアクセスして指定したページを読込んで解析してくれます。proxyの下にいる場合にはもう少し手続きが必要ですがここでは割愛します。Nokogiriの機能がhtmlに対して使用できます。Nokogiriのsearchを使いXPATHという形式で解析データからid属性が"weather-observation-table"のtableを取り出します。計測されていない日の場合にはこのtableが無いので以下の処理はしません。searchは見つかったオブジェクトの配列を返します。見つからなければ空配列が返ります。|table|そのテーブルの下を更にsearchでtrを探します。|tr|さらにtrの下のデータが入っているtdを取り出します。取り出し時はNokogiriのデータは全てUTF-8と成っているのでSJISに変換して置きます。trの下には項目名のthの部分も有りますがその場合にはtdが無いので結果は空の配列となります。mapは配列の各要素を「ブロックで渡された手続きで評価し」その結果を集めた配列を返します。SJIS変換した文字列の配列としてデータを返します。td.text.tosjis}結果のサイズが0の場合には項目名の部分ですから無視します。0対象の日付とlineデータ内の(時、分)の部分で日時データを作ります。"#{line[0]}:#{line[1]}"作った日時データと残りのデータを足して、ひとつの配列としてCSVに書込みます。日付クラスのデータですので日付として次の日を計算してくれます。仮想マシン上にruby統合開発環境をインストールしてあります。インストール済みで各種rubyを切替ながら試せます。仮想マシンバザール(C)Trail4YouIndex。