Home > All > hpricotでスクレイピング

hpricotでスクレイピング

December 14th, 2008 Leave a comment Go to comments

スクレイピングとはプログラム内から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という構成だったのですが、反応が返ってきませんでした…

関連記事:

Tags:
  1. No comments yet.