我有一个Perl脚本,使用 WWW::机械化 读一个文件,并执行一些自动的任务,在网站上。然而,该网站使用的一个302重新定向后每次我请求的某一页。我不想要重新定(网页,它重定向到需要太长时间来做出反应);我只是想循环,通过该文件,并呼吁的第一个链接。我不能找出如何使WWW::机械化不执行重定向。任何建议?

有帮助吗?

解决方案

WWW::Mechanize 是一个子类的 LWP::UserAgent.所以你可以用任何 LWP::UserAgent 方法。

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

其他提示

WWW ::机械化是LWP ::用户代理的一个子类;你可以在构造函数中,你会与LWP ::用户代理设置max_redirect或requests_redirectable选项。

可以使用$剂 - > 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(O) - 。它显然不进行重定向

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top