我正在尝试使用LWP::Simple获取维基百科的页面,但它们不会回来。这段代码:
#!/usr/bin/perl
use strict;
use LWP::Simple;
print get("http://en.wikipedia.org/wiki/Stack_overflow");不打印任何东西。但如果我使用其他网页,比如http://www.google.com,它就能正常工作。
有没有其他我应该用来指代维基百科页面的名字?
这到底是怎么回事?
发布于 2008-08-23 20:33:01
显然维基百科阻止了LWP::Simple requests:http://www.perlmonks.org/?node_id=695886
下面的代码可以替代:
#!/usr/bin/perl
use strict;
use LWP::UserAgent;
my $url = "http://en.wikipedia.org/wiki/Stack_overflow";
my $ua = LWP::UserAgent->new();
my $res = $ua->get($url);
print $res->content;发布于 2008-09-16 14:44:30
您也可以只在LWP::Simple模块上设置UA -只需导入$ua变量,它将允许您修改底层的UserAgent:
use LWP::Simple qw/get $ua/;
$ua->agent("WikiBot/0.1");
print get("http://en.wikipedia.org/wiki/Stack_overflow");发布于 2012-11-02 17:43:05
我用LWP:RobotUA而不是LWP::UserAgent解决了这个问题。你可以阅读下面的文档。您不需要修改太多的差异。
http://lwp.interglacial.com/ch12_02.htm
https://stackoverflow.com/questions/24546
复制相似问题