次のリンクにアクセスして 1975 という数字を抽出する perl スクリプトを書くことに興味があります: %20Diego%22%20%2Bbirth_year%3A1923-1923~%20%2Bgender%3AM%20%2Brace%3AWhite&collection_id=2000219
そのウェブサイトは、1940 年にカリフォルニア州サンディエゴ郡に住む 1923 年生まれの白人男性の数です。ループ構造でこれを実行して、複数の郡と誕生年を一般化しようとしています。
ファイル location.txt に、サンディエゴ郡などの郡のリストを入れました。
現在のコードは実行されますが、# 1975 の代わりに不明と表示されます。数値 1975 は $val\n にあるはずです。
助けていただければ幸いです。
#!/usr/bin/perl
use strict;
use LWP::Simple;
open(L, "locations26.txt");
my $url = 'https://familysearch.org/search/collection/results#count=20&query=%2Bevent_place_level_1%3A%22California%22%20%2Bevent_place_level_2%3A%22%LOCATION%%22%20%2Bbirth_year%3A%YEAR%-%YEAR%~%20%2Bgender%3AM%20%2Brace%3AWhite&collection_id=2000219';
open(O, ">out26.txt");
my $oldh = select(O);
$| = 1;
select($oldh);
while (my $location = <L>) {
chomp($location);
$location =~ s/ /+/g;
foreach my $year (1923..1923) {
my $u = $url;
$u =~ s/%LOCATION%/$location/;
$u =~ s/%YEAR%/$year/;
#print "$u\n";
my $content = get($u);
my $val = 'unknown';
if ($content =~ / of .strong.([0-9,]+)..strong. /) {
$val = $1;
}
$val =~ s/,//g;
$location =~ s/\+/ /g;
print "'$location',$year,$val\n";
print O "'$location',$year,$val\n";
}
}
更新: API は実行可能なソリューションではありません。私はサイトの開発者と連絡を取り合っています。API は Web ページのその部分には適用されません。したがって、JSON に関連するソリューションは適用されません。