Verwenden von Perl zum Scrappen einer Website

Ich bin daran interessiert, ein Perl-Skript zu schreiben, das auf den folgenden Link verweist und die Nummer 1975 extrahiert: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 20% 2Brace% 3AWhite & collection_id = 2000219

Diese Website gibt die Anzahl der im Jahr 1923 geborenen weißen Männer an, die 1940 in San Diego County, Kalifornien, leben. Ich versuche dies in einer Schleifenstruktur zu tun, um es über mehrere Grafschaften und Geburtsjahre hinweg zu verallgemeinern.

In der Datei "locations.txt" habe ich die Liste der Grafschaften wie San Diego County abgelegt.

Der aktuelle Code wird ausgeführt, aber anstelle von # 1975 wird unbekannt angezeigt. Die Nummer 1975 sollte in $ val \ n sein.

Ich würde mich über jede Hilfe sehr freuen!

#!/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";
         }
     }

Update: API ist keine praktikable Lösung. Ich habe Kontakt mit dem Site-Entwickler aufgenommen. Die API gilt nicht für diesen Teil der Webseite. Daher kann keine Lösung für JSON angewendet werden.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage