PerlのWeb::ScraperでHTMLを簡単パース
PerlのScraperモジュールを使えばHTMLを簡単にパースできる。
Scraperをインストール
#cpan
cpan>> install Web::Scraper
サンプルコード
use Web::Scraper;
use URI;
use Data::Dumper;my $scraper = scraper {
#tag内のテキストを抽出
process 'a', 'value' => 'TEXT';
#tag内の属性を抽出
process 'a', 'attribute' => '@href';
#tag内のHTMLを抽出
process 'a', 'html[]' => 'HTML';
};my $uri = new URI('localhost');
my $ptr_result = $scraper->scrape($uri);
my @result = @$ptr_result;print Dumper @result;
scraper対話モードとXPATH(Firebugで簡単に取得可能)が超便利
scraper "localhost"
#対話モードに入る
scraper> process '/html/body/table[4]/tr/td/table/tr[4]/td/table/tr/td/img', WARN;
#結果
<img height="15" src="/img/spacer.gif" width="15" />
<img height="15" src="/img/spacer.gif" width="15" />