Question

J'ai un script Perl qui utilise WWW :: Mechanize pour lire un fichier et effectuer des tâches automatisées sur un site Web. Cependant, le site utilise une redirection 302 après chaque fois que je demande une certaine page. Je ne veux pas être redirigé (la page qui redirige vers prend trop de temps pour répondre); Je veux juste faire une boucle dans le fichier et appelle le premier lien et encore. Je ne peux pas comprendre comment faire WWW :: mécaniser PAS suivre les redirections. Toutes les suggestions?

Était-ce utile?

La solution

WWW::Mechanize est une sous-classe de LWP::UserAgent . Vous pouvez donc utiliser toutes les méthodes LWP::UserAgent .

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

Autres conseils

WWW :: Mechanize est une sous-classe de LWP :: UserAgent; vous pouvez définir les options de max_redirect ou requests_redirectable dans le constructeur comme vous le feriez avec LWP :: UserAgent.

Vous pouvez utiliser agent- $> max_redirect (0) ;, comme dans cet exemple:

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

Lors de l'exécution, il imprime:

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

Alors, avec max_redirect (0) -. Il ne suit pas clairement réoriente

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top