используя Perl для очистки сайта
Я заинтересован в написании сценария Perl, который идет по следующей ссылке и извлекает номер 1975:https://familysearch.org/search/collection/results#count=20&query=%2Bevent_place_level_1%3ACalifornia%20%2Bevent_place_level_2%3A%22San%20Diego%22%20%2Bbirth_year%3A1923-1923~%20%2Bgender%3AM% 20% 2Brace% 3AWhite & collection_id = 2000219
Этот веб-сайт содержит информацию о количестве белых мужчин, родившихся в 1923 году, которые живут в округе Сан-Диего, штат Калифорния, в 1940 году. Я пытаюсь сделать это в виде циклической структуры, обобщающей данные по нескольким округам и годам рождения.
В файл 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 не применяется к этой части веб-страницы. Следовательно, любое решение, относящееся к JSON, не будет применимо.