AED設置場所検索
http://www.qqzaidan.jp/AED/aed.htm
Web::Mechanize を使って、上記ページから全都道府県の設置場所を全部取るのが理想だけど、まだ勉強してないので、下記コードではとりあえず北海道の分だけをURLコピペで取得してる。
URLリストをファイルかなんかに書きこんで、qwにそのファイルを読みこませる?やり方とかあるのかなあ
#!/opt/local/bin/perl
use strict;
use warnings;
use Web::Scraper;
use URI;
use YAML;
# ↓3行の参考URL http://blog.dtpwiki.jp/dtp/2011/03/wwwmechanizeweb.html
use Encode::Alias;
define_alias(qr/shift.*jis$/i => '"cp932"');
define_alias(qr/sjis$/i => '"cp932"');
binmode STDOUT,":encoding(utf8)";
# === Main part ===
my @uri = qw(
http://www.qqzaidan.jp/cgi-bin/database.cgi?equal2=%96k%8AC%93%B9
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%341321%3799%200
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%360962%3999%400
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%1116835%11933%600
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%1872014%19612%800
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%2638458%27466%1000
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%3749798%38534%1200
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%4526158%45038%1400
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%5002340%49644%1600
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%5329517%52688%1800
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%5703067%55888%2000
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%6346149%62038%2200
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%7165942%69977%2400
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%8457982%82658%2600
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%8651796%84551%2800
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%8995287%87923%3000
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%9409535%91783%3200
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%10158149%99094%3400
http://www.qqzaidan.jp/cgi-bin/database.cgi?
equal2=%96k%8aC%93%b9&data=3636%109894%11126620%108396%3600
);
# Web::Scraper のインスタンスを作成
my $items = scraper {
process '//center' , 'resultcenter[]' => scraper {
process '//table' , 'resulttable[]' => scraper{
process '//tbody' , 'resulttbody[]' => scraper {
process '//tr[2]' , 'resulttr[]' => scraper {
process '//td[1]' , 'resulttd1[]' => 'TEXT';
process '//td[2]' , 'resulttd2[]' => 'TEXT';
process '//td[3]' , 'resulttd3[]' => 'TEXT';
process '//td[4]' , 'resulttd4[]' => 'TEXT';
process '//td[5]' , 'resulttd5[]' => 'TEXT';
};
};
};
};
};
my $out_file="AED_hokkaidoh.txt";
open(my $out_fh,">>",$out_file)||die('ファイルを追記モードで開けませんでした。');
my $result;
for(my $count = 0; $count < @uri; $count++){
eval {$result = $items->scrape(URI->new($uri[$count]))};
#例外処理
if($@) {
print "exception! $@\n";
}
#情報の表示
print $out_fh Dump($result); #Dump にはメモリアドレスを渡すらしい(^^;
}
close($out_fh);
0 件のコメント:
コメントを投稿