Web::ScraperとWWW::MechanizeでCDBabyからデータ取得
前回記事 Web::Scraperを使ってみた - ragutarouの日記 の発展形。
"see more"というリンクがなくなるまでリンクを辿りデータを取得していく。
#!/usr/bin/perl use strict; use warnings; use Web::Scraper; use WWW::Mechanize; use URI; use YAML; my $url = new URI('http://cdbaby.com/top/223'); my $mech = new WWW::Mechanize; $mech->add_header(Connection => 'keep-alive'); $mech->get($url) or die $!; # Scrape my $scraper = scraper { process 'div.albumbox>h3>a', 'title' => 'TEXT', 'link' => '@href'; process 'div.albumbox>div.price', 'price' => 'TEXT'; }; my $item = scraper { process 'div#content li', 'result[]' => $scraper; }; # Follow Link & Print do { my $res = $item->scrape($mech->uri()); warn Dump $res; } while ($mech->follow_link(text => 'see more'));