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」をパイプしよう。