2007-01-24
■ [Ruby] scrAPIを使ってみる(2)

「リンク名とリンク先を配列に入れる」には、HTML::Tag#textメソッドを定義すると簡潔に書けるようになるんだね。
class HTML::Tag def text() Scraper::Base.text(self) end end
これとこのあいだのString#scrapeを利用すると、asahi.comの「主要ニュースのタイトルとリンク先の取得」が次のように書けるよ。
require 'open-uri' require 'nkf' require 'pp' html = NKF.nkf('-w', open("http://www.asahi.com/").read) pp html.scrape("#con1 li a:nth-child(1)"){|e| [e.text, e["href"]]}
WindowsのRubyを使っている人は、「'-w'」を「'-s'」にしてね。
実行結果だよ。
[["エチゼンクラゲからコラーゲン抽出 化粧品原料メーカー", "/business/update/0124/044.html"], ["陸自が武器庫管理責任者らを懲戒処分へ 小銃紛失問題で", "/national/update/0124/TKY200701230473.html"], ["虐待死検証のための常設組織を都道府県に設置へ 厚労省", "/life/update/0124/004.html"], ["トヨタが中国で新旧カローラの同時販売へ 設備投資圧縮", "/business/update/0124/045.html"], ["「硫黄島」がアカデミー賞候補 「バベル」の菊地さんも", "/culture/update/0123/016.html"]]
いろいろ応用できそう!
コメント
トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20070124