ダイアリーの archive ページから日記を書いた年月の一覧を取り出す

s_kanda2006-12-11


昨日に続いて下準備のプログラム。
日記を書いた年月の一覧が入ったリストを作成する。

先に実行結果。リスト @ym の中身を表示。

200410 200411 200412 200501 200506 200507 200508 200509 200510 200511 200512 200601 200602 200603 200604 200605 200606 200607 200608 200609 200610 200611 200612

プログラム。

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
$ua->agent('PerlSample/0.1');
$ua->timeout(5);
my $addres = "http://d.hatena.ne.jp/s_kanda/archive/";
my $response = $ua->get($addres);
if (! $response->is_success) {
    die "get error.\n";
}
my @list = split( /\n/, $response->content );
my @ym;
foreach my $wk (@list){
    $_ = $wk;
    if(/^(\d{4})[ ]\|[ ]\<a/){
        my $y = $1;
        foreach my $m (/(\d{2})\<\/a/g){
            push( @ym, $y.$m );
        }
        next;
    }
    if(/\<\/div\>/){
        last if(@ym);
    }
}
print "@ym\n";

このコードを一週間後の自分が見て理解できるんだろうか。。
でも、

foreach my $m (/正規表現/g)

で、月の文字列(数字2桁)がずらずら取り出せたときは、やった!と思った。