ダイアリーの archive ページから日記を書いた年月の一覧を取り出す
昨日に続いて下準備のプログラム。
日記を書いた年月の一覧が入ったリストを作成する。
先に実行結果。リスト @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桁)がずらずら取り出せたときは、やった!と思った。