0

我编写了一个脚本来使用 LWP::RobotUA 检查我自己的网站。我想避免对我的 robots.txt 的频繁请求。

LWP::RobotUA 的规则参数应该允许我指定这些,但我不明白应该为“允许所有页面”传递什么。

my $ua = LWP::RobotUA->new(agent=>'my-robot/0.1', from=>'me@foo.com', rules=> ??? );
4

2 回答 2

1

LWP::RobotUA 是robots.txt添加了支持的 LWP::UserAgent。如果您不想请求robots.txt,则只需使用 LWP::UserAgent。

或者,子类 LWP::RobotUA 并覆盖该simple_request方法并剥离robots.txt和规则处理。

于 2011-12-22T10:30:27.297 回答
0

经过更多研究,我认为提供机器人规则的预期方法是继承 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);
于 2011-12-22T11:38:04.613 回答