Web::Scraperを用いてスクレイピング
ウェブから必要な情報を集めることをスクレイピングというらしい。
- 英語で"scrape"とは「削ること」。 特に、ウェブサイトのデータを必要な部分だけ抽出して利用すること。 続きを読む
- このキーワードを含むブログ (今週 2 件) を見る
PerlではWeb::Scraperを使うと便利らしい。
参考にさせていただいたのはこちらのページ
http://e8y.net/mag/013-web-scraper/
さっそくJリーグの試合記録をスクレイピングしてみることに。
http://www.j-league.or.jp/SS/jpn/news/2010010001_W0501_J.html
このページから試合情報のみを取り出してみる。
#!/usr/bin/perl use strict; use warnings; use Web::Scraper; use URI; binmode(STDOUT,"utf8"); my $scraper = scraper{ process 'td','test[]'=>'TEXT'; result 'test'; }; my $uri = new URI('http://www.j-league.or.jp/SS/jpn/news/2010010001_W0501_J.html'); my $res = $scraper->scrape($uri); my @results = @$res; @results = grep {$_ !~/^\s$/ } @results; #空文字除去 foreach my $element (@results){ print $element."\n"; }
出力結果(一部)
..... 第34節 12/04 (土) 15:34 仙台 1-1 川崎F ユアスタ スカパー・e2(J sports Plus) 15:34 山形 1-1 鹿島 NDスタ スカパー(スカチャンHD、スカチャン)/e2スカチャン 15:34 浦和 0-4 神戸 埼玉 スカパー(スカチャンHD、スカチャン)/e2スカチャンHD/BS/テレ玉 15:33 横浜FM 0-2 大宮 日産ス スカパー(スカチャンHD、スカチャン)/スカパー・e2(フジテレビONE) 15:34 新潟 3-1 湘南 東北電ス スカパー(スカチャンHD、スカチャン)/e2スカチャン/NHK新潟 15:33 清水 0-3 G大阪 アウスタ スカパー(スカチャンHD、スカチャン)/e2スカチャン/静岡放送 ....
こういう情報をCVS形式とかで保存すればデータマイニングとかのネタになりそうです。