Ruby + Hpricot で 気象庁サイトのスクレイピングに挑戦
突然、スクレイピングなるものを試してみたくなりました。
Nokogiriを最初考えていたのですが、
Hpricotも良さ気と評判なので、こちらを試してみることにしました。
RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize
参考にさせていただいたサイトです。ありがとうございます。
環境
Mac OS X ( Snow Leopard )
ruby 1.9.3p194
Hpricotのインストール
[shell]
$ sudo gem install hpricot
[/shell]
薩摩地方の地域時系列予報を取得
天気などを部分的に取得できたら嬉しいな、ということで気象庁のHPよりデータを取得したいと思います。
今回は練習なので出来るだけ簡単に済ませたいので、
地域時系列予報 : 鹿児島県より
一番最初に出てくる鹿児島県薩摩地方の地域時系列予報を取得します。
[ruby]
# coding: utf-8
require ‘hpricot’
require ‘open-uri’
doc = Hpricot( open( ‘http://www.jma.go.jp/jp/jikei/352.html’ ).read )
ann_time = doc.search( ‘div#ASFC_ANNOUNCE_TIME’ )
ann_description = doc.search( ‘td.ASFC_Description’ ).first
image = doc.search( ‘img#ASFC_IMAGE’ ).first
ann_image = ‘http://www.jma.go.jp/jp/jikei/’ + image[ ‘src’ ]
print ‘‘
print ‘‘
print ‘
print ‘ ‘
print “
print ‘‘
print ‘‘
print “
#{ann_description.inner_html}
”
print “
#{ann_time.inner_html}
”
print “
”
print ‘‘
print ‘‘
[/ruby]
取得と切り取り処理は5行で終わってます。
凄いですね〜Hpricot。
実行
今回はリダイレクションでHTMLファイルとして出力しました。
[shell]
$ ruby ファイル名.rb > ファイル名.html
[/shell]
出力されたhtmlです。
改行無いのはご愛嬌(^^;
[xhtml]
鹿児島県薩摩地方
【気温:鹿児島】
平成24年08月11日17時 発表
[/xhtml]
ブラウザで開いてみると薩摩地方の地域時系列予報を取得できていました。
だいたい1時間くらいで出来ました。
もっと勉強すれば凄く強力なことが出来そうですね。
簡単に使えるようになりたいスキルです。