Domanda

Ho uno script Perl che utilizza WWW :: Mechanize di leggere da un file ed eseguire alcune operazioni automatizzate su un sito web. Tuttavia, il sito utilizza un reindirizzamento 302 dopo ogni volta che chiedo una certa pagina. Io non voglio essere reindirizzati (la pagina che reindirizza a impiega troppo tempo per rispondere); Voglio solo scorrere il file e chiamo il primo anello più e più volte. Io non riesco a capire come fare WWW :: meccanizzare non segue i reindirizzamenti. Qualche suggerimento?

È stato utile?

Soluzione

WWW::Mechanize è una sottoclasse di LWP::UserAgent . Quindi è possibile utilizzare qualsiasi LWP::UserAgent metodi.

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

Altri suggerimenti

WWW :: Mechanize è una sottoclasse di LWP :: UserAgent; è possibile impostare le opzioni max_redirect o requests_redirectable nel costruttore come si farebbe con LWP :: UserAgent.

È possibile utilizzare $ agent-> max_redirect (0) ;, come in questo esempio:

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

Quando si esegue la stampa:

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

Così, con max_redirect (0) -. Chiaramente non segue i reindirizzamenti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top