Как я могу сохранить WWW:: Mechanize из следующих редиректов?

У меня есть Perl script, который использует WWW:: Mechanize для чтения из файла и выполнения некоторых автоматизированных задач на веб-сайте. Тем не менее, веб-сайт использует перенаправление 302 после каждого запроса на определенную страницу. Я не хочу, чтобы меня перенаправляли (страница, на которую он перенаправляет, занимает слишком много времени, чтобы ответить); Я просто хочу прокрутить файл и вызвать первое звено снова и снова. Я не могу понять, как сделать WWW:: Mechanize NOT следовать перенаправлениям. Любые предложения?

Ответ 1

WWW::Mechanize является подклассом LWP::UserAgent. Таким образом, вы можете использовать любые методы LWP::UserAgent.

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

Ответ 2

WWW:: Mechanize - это подкласс LWP:: UserAgent; вы можете установить параметры max_redirect или request_redirectable в конструкторе, как в LWP:: UserAgent.

Ответ 3

Вы можете использовать $agent- > max_redirect (0);, как в этом примере:

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

При выполнении печати:

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

Итак, с max_redirect (0) - это явно не соответствует перенаправлениям.