Web::Scraperを使ってみる

hinetmania改

Gungho::Inlineを使ってみるの記事ではcssセレクタを使ってみています.cssセレクタは便利だけど,おまじないが多くてちょっと「いやん」とか思っていたのですが,宮川さんが作られたWeb::Scraperを使うと美しく書けます.こんな感じ.

source

#!/usr/local/bin/perl

use warnings;
use strict;
use URI;
use Web::Scraper;
use Data::Visitor::Encode;

my $dve = new Data::Visitor::Encode;

my $scraper = scraper {
    process 'td.bgltsub+td.bgwhite', 'descr[]' => 'text';
    result 'descr';
};

my $quake = $scraper->scrape( URI->new("http://www.hinet.bosai.go.jp") );

$quake = $dve->utf8_off($quake);
map { print $_, "\n" } @$quake;

debug用に,配列にデータを入れてるけど,コードに渡せばさらにスマートにいけるかな.Gunghoもバージョンアップしてるし,hinetmaniaのスクリプトもかきなおしてみよっと.ちなみに,このスクリプトの実行結果はこんな感じになります.

% ./hinet2.pl 
宮城県北部 
2007/05/10 22:32:33.87 
38.847N
141.639E
73.6km
2.7

それはそれとして

寝る.風邪ひいたみたい.おやすみなさい.