Wikipediaから声優名一覧を取ってくるPerlスクリプトv2 (2) 2chを使ったスクリーニング案

Wikipediaから声優名一覧を取ってくるPerlスクリプトv2 (1) 2chを使ったスクリーニング案 - XXXannex

続き。bbemenuをWeb::Scraperスクレイピングして、「声優個人」のスレタイ一覧を取ってきます。

firstvalとか使っちゃうのは、ある種のR脳なのかもなー。Perl標準の配列操作がまどろっこしくて、foreachとか使うのがめんどくなるんだよね・・・。

use strict;
use warnings;
use LWP::UserAgent;
use Web::Scraper;
use List::MoreUtils qw/firstval/;
use utf8;

my $url_bbsmenu = 'http://menu.2ch.net/bbsmenu.html';

my $request = HTTP::Request->new(GET => $url_bbsmenu);
$request->accept_decodable;

my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->agent("Monazilla/1.00");

my $response = $ua->request($request);

my $scraper = scraper {
  process 'a', 'board[]' => {
    url  => '@href',
    name => 'TEXT',
  };
  result 'board'; 
};

my $board = $scraper->scrape($response);

my $va = firstval { $_->{name} =~ /声優個人/ } @$board;

$request->uri($va->{url} . 'subject.txt');
$response = $ua->request($request);

print $response->decoded_content;

実行結果

1264398663.dat<>サセ〜千葉紗子 第53話〜ポン (993)
9241005010.dat<>【2ちゃんねる10周年】【1日5分】柿を育ててお試し●ゲット!【携帯・規制・突破】 (2)
9241005704.dat<>■ 作戦名「一羽の鴎」始動 (19)
1251217735.dat<>【夢の方程式】小森まなみ応援スレ◆2【buddy】 (213)
1266323682.dat<>福山潤を語るスレ その25 (247)
1273060218.dat<>丹下桜 Part37 (501)
1274535568.dat<>中村繪里子☆77 (299)
1260397589.dat<>【ロンパリ】堀江一眞本(人)スレ4【チンカスマ】 (375)
1226237835.dat<>名塚佳織アンチスレ (441)
1274710816.dat<>豊崎愛生 Part48 (745)
1269444084.dat<>中原麻衣 Part47 (763)

やったね。
そういや昔のBBSスクリプトはデリミタが"<>"だったよね。なつかしす。

追記

List::Utilにfirstというものがあった。わざわざ非標準のライブラリーを使う必要はなかったな・・・。
List::Util - A selection of general-utility list subroutines - metacpan.org