tenki.jpからピンポイント天気予報、週間予報、アメダス実況を抜き出すRubyスクリプト
http://tenki.jp/ から天気予報の情報を抜き出したい。ブラウザで見るとヘッダがうざいし、天気予報とアメダス実況は別ページなので開くのが面倒だ。そこで加工してひとつのHTMLでまとめてしまおうとするのがrubyistというもの。
Hpricotでさくっと料理してしまおう。Nokogiriでもそのまま動くぞ。あー、Nokogiriは速いんだけどgemでしか提供してないからRuby 1.8だと体感速度に響いてしまうのがよくない。「require 'rubygems'」がクソ重い。
URLはお住まいの場所に置き換えよう。
#!/usr/local/bin/ruby -Ku require 'open-uri' require 'hpricot' require 'kconv' h = Hpricot URI("http://tenki.jp/forecast/point-682.html").read pinpoint = h.at("//table[@summary='ピンポイント天気']") weekly = h.at("//table[@summary='週間天気']") h = Hpricot URI("http://tenki.jp/amedas/detail-526.html").read amedas = h.at("//table[@class='amedasuDailyTable']") html = "<html><body>#{pinpoint}<hr>#{weekly}<hr>#{amedas}<hr></body></html>" puts html.gsub(/<img.+?>/, '').toeuc
そのまま実行するとhtmlを吐き出すのでPlain Textにしたければ「w3m -dump -T text/html」をパイプしよう。