【发布时间】:2016-12-25 22:33:03
【问题描述】:
查看UserAgent.pm 时似乎未定义。至少,据我所知,当例程到达该部分时,它是未定义的,即使我使用$pua->agent() 明确设置它。这是一个错误吗?还有init_header(),但是我尝试$pua->request->init_header()的时候也设置失败。
#!/bin/perl
use LWP::Parallel::UserAgent;
my $ua_string =
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36";
my $url = "http://www.example1.com";
my $url2 = "http://www.example2.com";
my $reqs = [
HTTP::Request->new( 'GET', $url ),
HTTP::Request->new( 'GET', $url2 )
];
my ( $req, $res );
my $pua = LWP::Parallel::UserAgent->new();
$pua->agent($ua_string);
foreach $req ( @$reqs ) {
$pua->register( $req );
}
my $entries = $pua->wait();
foreach ( keys %$entries ) {
$res = $entries->{$_}->response;
my $r = $res;
my @redirects;
while ( $r ) {
$res = $r;
$r = $r->previous;
push( @redirects, $res ) if $r;
}
}
【问题讨论】:
-
该代码运行良好。你能发布你收到的错误消息吗?还有你使用的是什么版本的 LWP 和 LWP::Parallel::UserAgent。
-
最新版本。它没有为我设置用户代理字符串。它运行良好,但没有设置值。
-
如果您在设置后立即粘贴
print "The user-agent is: ".$pua->agent,您会得到什么? -
我正在查看我的日志文件。它不在我的日志文件中。如果我进入并手动编辑 perl 模块 UserAgent.pm 并在那里设置代理变量,它就可以工作,并显示在我的日志中。但在使用 $pua->agent() 时不会。
-
当你说“它不在我的日志文件中”时,你的意思是你得到了
The user-agent is:或者你什么也没得到?如果您一无所获,那么该行根本就不会运行。同样,因为您没有使用strict或warnings,我怀疑真正发生的事情是您有错字并且您正在传递undef。尝试打印$ua_string。同时打开严格和警告。或者您正在使用某人的破解版本的 LWP::UserAgent(因为您很可能正在编辑该模块)。尝试将其与新下载的内容进行比较。
标签: perl lwp lwp-useragent