perl – 如何制作WWW:机械化以不两次获取页面?

前端之家收集整理的这篇文章主要介绍了perl – 如何制作WWW:机械化以不两次获取页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用OO Perl编写的网络抓取应用程序.应用程序中使用了单个 WWW::Mechanize对象.如何使其不能两次获取相同的URL,即使用相同的URL no-op创建第二个get():

my $mech = WWW::Mechanize->new();
my $url = 'http:://google.com';

$mech->get( $url ); # first time,fetch
$mech->get( $url ); # same url,do nothing

解决方法

您可以继承WWW :: Mechanize并重新定义get()方法以执行您想要的操作:

package MyMech;
use base 'WWW::Mechanize';

sub get {
    my $self = shift;
    my($url) = @_;

    if (defined $self->res && $self->res->request->uri ne $url) {
        return $self->SUPER::get(@_)
    }
    return $self->res;
}

猜你在找的Perl相关文章