Web::ScraperでURIを使うのとテキストを突っ込むのとでは結果が異なる
テスト用サイト
価格.comのゲーム本体カテゴリから、
「売れ筋ランキング」「注目ランキング」「満足度ランキング」の2位の情報だけ
スクレイピングして持ってくる
http://kakaku.com/game/game-console/
スクレイピング1:LWPのgetでテキスト突っ込む
use Web::Scraper; use LWP::Simple; use YAML; my $scraper = scraper { process '//th[@class="rank2"]/../td', 'items[]' => scraper { process '//div[@class="title"]/p/a', 'text[]' => 'TEXT'; process '//div[@class="item"]/a', 'link[]' => '@href'; process '//div[@class="item"]/a/img', 'image[]' => '@src'; process '//div[@class="price"]/span', 'price[]' => 'TEXT'; }; }; my $result = $scraper->scrape(get("http://kakaku.com/game/game-console/")); print Dump($result);
結果:
$ perl scrape_lwp.pl Wide character in print at scrape_lwp.pl line 17. ---- items: - image: - http://img.kakaku.com/images/productimage/m/20502010150.jpg link: - http://kakaku.com/item/20502010150/ price: - '\17,759' text: - 'Wii [ウィー] (Wiiリモコンジャケット同梱)' - image: - http://img.kakaku.com/images/productimage/m/K0000080401.jpg link: - http://kakaku.com/item/K0000080401/ price: - '\31,078' text: - プレイステーション3 HDD 250GB チャコール・ブラック CECH-2000B - image: - http://img.kakaku.com/images/productimage/m/20504010167.jpg link: - http://kakaku.com/item/20504010167/ price: - '\15,400' text: - PSP プレイステーション・ポータブル ピアノ・ブラック PSP-3000 PB
まあ、普通。
スクレイピング2:URIオブジェクトで取得
use Web::Scraper; use URI; use YAML; my $scraper = scraper { process '//th[@class="rank2"]/../td', 'items[]' => scraper { process '//div[@class="title"]/p/a', 'text[]' => 'TEXT'; process '//div[@class="item"]/a', 'link[]' => '@href'; process '//div[@class="item"]/a/img', 'image[]' => '@src'; process '//div[@class="price"]/span', 'price[]' => 'TEXT'; }; }; my $result = $scraper->scrape(URI->new("http://kakaku.com/game/game-console/")); print Dump($result);
結果:
$ perl scrape_uri.pl Wide character in print at scrape_uri.pl line 17. --- items: - image: - !!perl/scalar:URI::http http://img.kakaku.com/images/productimage/m/20502010150.jpg link: - !!perl/scalar:URI::http http://kakaku.com/item/20502010150/ price: - '\17,759' text: - 'Wii [ウィー] (Wiiリモコンジャケット同梱)' - image: - !!perl/scalar:URI::http http://img.kakaku.com/images/productimage/m/K0000080401.jpg link: - !!perl/scalar:URI::http http://kakaku.com/item/K0000080401/ price: - '\31,078' text: - プレイステーション3 HDD 250GB チャコール・ブラック CECH-2000B - image: - !!perl/scalar:URI::http http://img.kakaku.com/images/productimage/m/20504010167.jpg link: - !!perl/scalar:URI::http http://kakaku.com/item/20504010167/ price: - '\15,400' text: - PSP プレイステーション・ポータブル ピアノ・ブラック PSP-3000 PB