
突然、スクレイピングなるものを試してみたくなりました。
Nokogiriを最初考えていたのですが、
Hpricotも良さ気と評判なので、こちらを試してみることにしました。
RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize
参考にさせていただいたサイトです。ありがとうございます。
環境
Mac OS X ( Snow Leopard )
ruby 1.9.3p194
Hpricotのインストール
1 |
$ sudo gem install hpricot |
薩摩地方の地域時系列予報を取得
天気などを部分的に取得できたら嬉しいな、ということで気象庁のHPよりデータを取得したいと思います。
今回は練習なので出来るだけ簡単に済ませたいので、
地域時系列予報 : 鹿児島県より
一番最初に出てくる鹿児島県薩摩地方の地域時系列予報を取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 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 '<!DOCTYPE html>' print '<html lang="ja">' print '<head>' print ' <meta charset="UTF-8" />' print "<title>#{ann_time.inner_html}</title>" print '</head>' print '<body>' print "<h1>#{ann_description.inner_html}</h1>" print "<p>#{ann_time.inner_html}</p>" print "<p><img src=#{ann_image} /></p>" print '</body>' print '</html>' |
取得と切り取り処理は5行で終わってます。
凄いですね〜Hpricot。
実行
今回はリダイレクションでHTMLファイルとして出力しました。
1 |
$ ruby ファイル名.rb > ファイル名.html |
出力されたhtmlです。
改行無いのはご愛嬌(^^;
1 |
<!DOCTYPE html><html lang="ja"><head> <meta charset="UTF-8" /> <title>平成24年08月11日17時 発表</title></head><body><h1>鹿児島県薩摩地方<br />【気温:鹿児島】</h1><p>平成24年08月11日17時 発表</p><p><img src=http://www.jma.go.jp/jp/jikei/images/88317.png /></p></body></html> |
ブラウザで開いてみると薩摩地方の地域時系列予報を取得できていました。
だいたい1時間くらいで出来ました。
もっと勉強すれば凄く強力なことが出来そうですね。
簡単に使えるようになりたいスキルです。
こういうブログもありました。
- ファイル名に入っている数値をインクリメントするスクリプトをRubyで。
- Railslでカラム名(列名)の追加と削除と変更
- Ruby文法 初歩の初歩をまとめ その4 例外処理
- (Mac Book) Leopard → Snow LeopardへアップグレードでPortsエラー
- Mac Snow Leopardにtreeコマンドをインストール
人気のあるブログ:
- 新しいgemのアップデート方法(rubygems-update)
- Coda2でscssを使うときのお供にcompassをどうぞ。
- bashでUTF-8に設定して日本語表示したり使ったり。Emacsでも。
- NginxをSSL付きで動かすために設定したこと
- Macでフォルダを結合したいとき