Z.Z*_*Zen 3 perl www-mechanize
我是Perl/HTML的新手.我正在尝试使用http://en.wikipedia.org/wiki/Periodic_table$mech->get($url)上的元素周期表来获取某些内容,但它仍然会返回如下错误消息:
错误获取 http://en.wikipedia.org/wiki/Periodic_table:在PeriodicTable.pl第13行被禁止
但$mech->get($url)如果$url是http://search.cpan.org/,则可以正常工作.
任何帮助都感激不尽!
这是我的代码:
#!/usr/bin/perl -w
use strict;
use warnings;
use WWW::Mechanize;
use HTML::TreeBuilder;
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech = WWW::Mechanize->new();
my $table_url = "http://en.wikipedia.org/wiki/Periodic_table/";
$mech->get( $table_url );
Run Code Online (Sandbox Code Playgroud)
mar*_*ton 10
这是因为维基百科根据请求中提供的用户代理拒绝访问某些程序.
通过在实例化之后和之前设置代理,您可以将自己别名显示为"普通"Web浏览器get(),例如:
$mech->agent( 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-us) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8' );
Run Code Online (Sandbox Code Playgroud)
这对我来说很有用,你的帖子中有URL.较短的字符串可能也会起作用.
(我认为你也应该从URL中删除尾部斜杠.)
WWW :: Mechanize是LWP :: UserAgent的子类- 请参阅那里的文档以获取更多信息,包括agent()方法.
您应该限制使用此访问方法.维基百科明确拒绝在robots.txt文件中访问某些蜘蛛.LWP :: UserAgent(以libwww开头)的默认用户代理位于列表中.
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |