AKBの今日のスケジュール

久しぶりのWeb::Scraper

#!/usr/bin/env perl
use strict;
use warnings;
use URI;
use Encode;
use POSIX qw/strftime/;
use Web::Scraper;

my $today = strftime("%Y%m%d", localtime);
my $file  = substr($today, 0, 6).".html";
my $url = 'http://www.akb48.co.jp/schedule/'.$file;
my $schedule= scraper {
    process '//table/tr', 'tr[]' => scraper{
        process '//td/a', 'date' => '@name';
        process '//td[@id="media"]', 'media' => 'HTML';
    };
};

my $res = $schedule->scrape( URI->new($url) );
for my $tr (@{ $res->{tr} }) {
    next unless ($tr->{date} && $tr->{date} =~ /^\d{8}$/ && $tr->{date} == $today);
    my $media = join "\n", split /<br \/>/, $tr->{media};
    print encode_utf8 $media, $/;
}