BLOGTIMES
2007/05/13
[ by hsur at 20:16]

Web::Scraper超便利

  

もう3年くらい前になりますが、Template::ExtractでWebのスクレーピングをするのが便利だという話がありました。で、当時作ったスクリプトが実はまだ某所で動いていたりするわけですが、いまやもっと便利なライブラリができてるんですねぇ。

naoyaのはてなダイアリー - Web::Scraper

ばっちりですね。シンボルの書き方とかがちょっと違うところ以外は Ruby 版とほぼ等化。DSL 周りのドキュメントはまだないけどとりあえず scrapi のドキュメントを読めば ok! \(^o^)/

時間はただ流れているわけでありませんね。ということでちょっとテストしてみました。perlを書くのは久しぶりです。

ちょっとつくってみたもの

まずはperl -MCPAN -e install Web::Scraperをしておきます。
下記のコードはほとんどサンプルと一緒でページからh1とh2を取り出して表示します。

ws.pl


#!/usr/local/bin/perl
use strict;
use warnings;
use FindBin::libs;

use URI;
use Web::Scraper;
use Encode;
use YAML;

my $links = scraper {
    process 'h1', 'h1[]' => 'TEXT';
    process 'h2', 'h2[]' => 'TEXT';
    result qw/h1 h2/
}->scrape(URI->new(shift));

warn encode('euc-jp', YAML::Dump($links));

実行結果


$ perl ws.pl http://blog.cles.jp
---
h1:
  - cles::blog
h2:
  - 夜中に人の家に突撃して、肉じゃがを作るオフ?
  - 移動の前にこれ1本
  - svchost.exeのCPU使用率が100%になるのはバグだったのか
  - ぐるなびWebサービス開始
  - phpでオープンソースなアンケート作成ソフト「opensurveypilot」
  - Smartyの日本語マニュアル
  - FizzBuzz問題が解けますか?
  - 遅ればせながらtwitter始めました
  - オリジナル版NP_TrackBackが 2.1.0に
  - 目指せ、16連射!

ばっちりです。coolですね。
あー、例のモジュール書き直そう。。。。。

このエントリは役に立ちましたか?
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/2003
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン

★下記に2つの英単語をスペースで区切って入力してください