ruby:hpricot
Hpricot
HpricotはRubyの軽量HTMLパーザ。要素へのアクセスはXPathで記述する。
作者のwhyさんは何処かに消えてしまったらしく、現在は別の人がメンテナンスしている。
インストール
$ sudo gem install hpricot
使い方
説明するよりサンプルコード、めざまし占いのページから星座と運勢を抜き出す例
require "rubygems" require "hpricot" require "open-uri" require "nkf" # SJISからUTF8変換 def filter(s) if s.nil? "" else NKF.nkf("-Sw", s) end end # openで取得したデータをそのまま渡せる、open-uriを使えばURLで指定したHTMLファイルを直接渡せる doc = Hpricot(open("http://www.fujitv.co.jp/meza/uranai/index.html")) # XPathで要素を抜きだし date = doc.search("//td[@class = 'day']")[1].inner_text # 抜き出した要素はEnumerableなので、mapメソッド等でまとめて処理できる。 items = doc.search("//table[@background ^= 'item/rank']").map { |table| item = {} item["star"] = table.search("img[@src ^= 'item/conste']").first["alt"] item["text"] = table.search("td[@class = 'text']").first.inner_text item["lucky"] = table.search("td[@class = 'lucky']").first.inner_text item } # 表示 puts filter date items.each { |item| puts filter item["star"] puts filter item["text"] puts filter item["lucky"] }
ruby/hpricot.txt · 最終更新: 2009/10/31 14:55 by 127.0.0.1