Frage

ich einen Perl-Skript, das verwendet WWW :: Mechanize aus einer Datei lesen und führen einige automatisierte Aufgaben auf einer Website. Allerdings verwendet die Website eine 302-Umleitung nach jedem Mal, wenn ich eine bestimmte Seite anfordern. Ich will nicht (die Seite die es Umleitungen an dauert zu lange reagieren) umgeleitet werden; Ich will einfach nur durch die Datei-Schleife und rufen Sie die erste Verbindung über und über. Ich kann nicht herausfinden, wie WWW machen :: mechanisieren NICHT Umleitungen folgen. Irgendwelche Vorschläge?

War es hilfreich?

Lösung

WWW::Mechanize ist eine Unterklasse von LWP::UserAgent . So können Sie mit jeder LWP::UserAgent Methoden.

my $mech = WWW::Mechanize->new();
$mech->requests_redirectable([]);

Andere Tipps

WWW :: Mechanize ist eine Unterklasse von LWP :: Useragent; Sie können die max_redirect oder requests_redirectable Optionen im Konstruktor festgelegt wie bei LWP :: Useragent.

Sie können $ agenten> max_redirect (0) ;, wie in diesem Beispiel verwenden:

#!/usr/bin/perl -w
use strict;

use WWW::Mechanize;

my $agent = WWW::Mechanize->new( 'autocheck' => 1, 'onerror' => undef, );
$agent->max_redirect( 0 );
$agent->get('http://www.depesz.com/test/redirect');
printf("Got HTTP/%s from %s.\n", $agent->response->code, $agent->uri);

$agent->max_redirect( 1 );
$agent->get('http://www.depesz.com/test/redirect');
printf("Got HTTP/%s from %s.\n", $agent->response->code, $agent->uri);

Bei der Ausführung druckt:

Got HTTP/302 from http://www.depesz.com/test/redirect.
Got HTTP/200 from http://www.depesz.com/.

Also, mit max_redirect (0) -. Es eindeutig nicht Umleitungen folgen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top