hpricotでスクレイピング
スクレイピングとはプログラム内からHTTP接続でWebページのデータを取得して加工・利用することです
rubyではいくつかライブラリがあるのですが、今回は抜き出すだけにしておきます
加工まで行うならmechanizeというのが便利そうですが、
取得だけならそのmechanizeの中でも使われているhpricotだけで十分です
requier 'hpricot'
requier 'open-uri'
requier 'timeout'
url = 'http://google.com/'
page = timeout(10){hprocot(url)}
title = (page/:title).innerHTML
これでタイトルが取得できます
timeoutは既知のURLにアクセスするなら必要ないかもしれませんが、ユーザに入力させたURLのような存在するかどうか分からないURLを使う場合は指定しておかないと長時間無反応になります
そもそも有効なURLかどうかを判定できればいいのですが…少し調べてみましたがどうやればいいのか分かりませんでした;
問題点として、hpricotはどうやらlocalhostにアクセスできないようです;
開発環境がWinXP+Webrickという構成だったのですが、反応が返ってきませんでした…