Ich versuche mit Perl5 und LWP :: UserAgent auf eine Site zuzugreifen. Bei der Verbindung stirbt das Skript jedoch mit der Meldung "403 Zugriff verweigert". Der komische Teil ist, dass es einwandfrei funktioniert mit WWW :: Mechanize, aber der Abrufcode ist genau derselbe. Normalerweise würde ich vermuten, dass der Benutzeragent die Ursache ist, aber wie bereits erwähnt, ist der Code in beiden Fällen derselbe.403 Fehler bei der Verwendung von LWP :: UserAgent aber nicht mit WWW :: Mechanize
Gibt es einen Unterschied darin, wie WWW :: Mechanize und LWP :: UserAgent Anfragen behandeln, die dieses Problem verursachen könnten?
Hier ist ein Beispielcode, der zwei verschiedene Ansätze zeigt.
# Mechanize
use strict;
use warnings "all";
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(
agent_alias => 'Mozilla/5.0',
show_progress => 1);
my $mech->get("www.foo.com");
# LWP
use strict;
use warnings "all";
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
agent_alias => 'Mozilla/5.0',
show_progress => 1);
my $r = $ua->get("www.foo.com");
Es wäre nett zu sagen, dass der richtige Parameter für 'neue' heißt' agent', und Sie sollten sagen, was die Standard-User-Agent-Zeichenfolgen sind – Borodin
@Borodin: Sie haben Recht. Ich habe diese Informationen zu meiner Antwort hinzugefügt. –
Danke. Es erscheint seltsam, dass eine Seite * Forbidden * für "libwww-perl" und nicht für "WWW-Mechanize" zurückgibt. Es muss ein hart codierter Ausschluss sein, und nicht ein sehr effektiver! – Borodin