SKEの今日のスケジュール
ちょっとぶりのWeb::Scraper
#!/usr/bin/env perl use strict; use warnings; use utf8; use URI; use Encode; use Web::Scraper; my $today = (localtime())[3]; my $url = 'http://www.ske48.co.jp/schedule/calendar.php'; my %type = ( stage => '公演', media => 'メディア', release => 'リリース', bday => '誕生日', ); my $schedule = scraper { process '//table[@title="SCHEDULE"]/tr', 'tr[]' => scraper { process '//th', 'date' => 'TEXT'; process '//td/ul/li', 'td[]' => scraper { process 'li', type => '@class'; process 'a', link => '@href'; process '.', text => 'TEXT'; }; }; }; my $detail = scraper { process '//div[@class="detail clearfix"]', text => 'TEXT'; }; my $sch = $schedule->scrape( URI->new($url) ); for my $tr (@{ $sch->{tr} }) { (my $date = $tr->{date}) =~ s/(\d+).*/$1/; next unless $date == $today; for my $td (@{ $tr->{td} }) { my $det = $detail->scrape( URI->new($td->{link}) ) unless $td->{type} eq 'bday'; my $type = $type{ $td->{type} }; print encode_utf8 <<"SKE48"; [$type] $td->{text} $det->{text} ----------------------------------- SKE48 } }