はてブのリンク切れチェック
use utf8; use strict; use warnings; use WWW::Mechanize; my $ua = WWW::Mechanize->new(); my $url = 'http://b.hatena.ne.jp/youraccount/?with_favorites=1&of='; # ここを書き換えてね! my $count = 80; open ( OUT, '>link.txt' ); while ( 1 ) { my $sub_url = $url.$count; $ua->get($sub_url); my @all_link = $ua->find_all_links(); my @out_link = grep { !($_->url =~ /hatena.ne.jp/) } grep { $_->url() =~ /^http/ } @all_link; @out_link or last; print $ua->uri(); print "\n"; foreach my $link ( @out_link ) { my $res = $ua->get($link); my $code = $res->code(); $ua->back(); if ( $code != 200 ) { print OUT $ua->uri(); print OUT "\n"; print OUT $res->code(); print OUT "\n"; print OUT $link->url(); print OUT "\n"; print OUT "\n"; } } $count += 20; } close ( OUT );
ブクマをひとつずつ調べて、リンク切れしてないかどうかをチェックする。
200以外のステータスを返してきたURLをリストアップして、link.txtを作ってそこに書き込むと言う動作をします。
ちなみに、238/4600が無効リンクでした。