我编写了一个脚本来使用 LWP::RobotUA 检查我自己的网站。我想避免对我的 robots.txt 的频繁请求。
LWP::RobotUA 的规则参数应该允许我指定这些,但我不明白应该为“允许所有页面”传递什么。
my $ua = LWP::RobotUA->new(agent=>'my-robot/0.1', from=>'me@foo.com', rules=> ??? );
我编写了一个脚本来使用 LWP::RobotUA 检查我自己的网站。我想避免对我的 robots.txt 的频繁请求。
LWP::RobotUA 的规则参数应该允许我指定这些,但我不明白应该为“允许所有页面”传递什么。
my $ua = LWP::RobotUA->new(agent=>'my-robot/0.1', from=>'me@foo.com', rules=> ??? );
LWP::RobotUA 是robots.txt
添加了支持的 LWP::UserAgent。如果您不想请求robots.txt
,则只需使用 LWP::UserAgent。
或者,子类 LWP::RobotUA 并覆盖该simple_request
方法并剥离robots.txt
和规则处理。
经过更多研究,我认为提供机器人规则的预期方法是继承 WWW::RobotRules。
{
package WWW::NoRules;
use vars qw(@ISA);
use WWW::RobotRules;
@ISA = qw(WWW::RobotRules::InCore);
sub allowed {
return 1;
}
}
my $ua = LWP::RobotUA->new(agent=>'my-robot/0.1', from=>'me@foo.com', rules=>WWW::NoRules->new);