Blog

Web::Query - jQuery風にスクレイピング

http://frepan.org/~TOKUHIROM/Web-Query-0.01/README.pod
Web::Query というスクレイピングフレームワークをかきました。一言でいうと「うごく pQuery」です。pQuery は jQuery とおなじ動きにするためかどうかしりませんが、わりと自前で実装していて、結果まともにうごいていません。うごくようになるのをまってようかなとおもっていたら2年経過していたので、自分でつくってみました(パッチをおくってもいいのだけど、別個の実装をつくったほうがはやい気がしたので)。HTML::TreeBuilder::XPath + HTML::Selector::XPath + LWP::UserAgent という構成です。

使用例は以下のとおり。

use Web::Query;

wq('http://google.com/search?q=foobar')
      ->find('h2')
      ->each(sub {
            my $i = shift;
            printf("%d) %s\n", $i+1, $_->text
      });

この種のライブラリとして Web::Scraper があるが、Web::Scraper の DSL をおもいだすまでにどうしても時間がかかりがちだったので、こういう風なのもいいかなとおもった。jQuery は日常的につかってるので、わすれないし。