Updated: 2006-09-16
Soms wil je van een lijst met URL's controleren of deze URL's beschikbaar zijn (een '200 OK' response code teruggeven) of niet. Met het volgende
URL check script is een dergelijke actie te automatiseren. Het script is gebaseerd op walker.pm; een objectgeoriënteerd schema van een webrobot in perl.
Hieronder volgt de uitleg van enkele belangrijke delen van de code:
1
my @list = read_list('seed.txt');
Het script leest als input het bestand 'seed.txt' en stopt de regels hiervan in array @list;
2
my $robot = walker->new(MAX_REDIRECT => 2);
Walker volgt automatisch 301 en 302 redirects. Echter indien MAX_REDIRECT wordt overschreden geeft deze alsnog een error.
3
my $try =
3;
while ($try-- >
0) { $robot->
walk();
sleep 2;
unless ($robot->
is_error) { # Succes 200 OK last;
}}
In geval van een error (bijvoorbeeld indien de server een '404 Not Found' of '500 Read Timeout' teruggeeft) wordt nogmaals geprobeerd de URL te benaderen. Het maximaal aantal pogingen is ingesteld op 3.
Het script doet verder maximaal 1 request per 2 seconden.
4
if ($robot->
is_error) { print OUTFILE
"$url\tNOT OK\n";
} else { print OUTFILE
"$url\tOK\n";
}
Het resultaat van de crawl wordt weggeschreven in een tab gescheiden file met 'OK' of 'NOT OK' achter de URL.