Perl单URL爬虫

分析了下代码,之前官方那段其实很简单,只要理解了,就能随意改动了。

根据自己的想法,目前想做的是全方位爬虫,并不是类似如此简单的爬,

简单的整理了下这个单例的抓URL。效果一般般,这几天忙完事情,我就改成多线程。

把URL的深度选项加入,以及可定向操作级别。这东西是我一直在思考的东西,也是我的一个想法。

把单例的例子保存下,方便以后翻。

#!/usr/bin/perl

use LWP::UserAgent;
use HTML::LinkExtor;
use URI::URL;

@imgs=();

test("http://www.baidu.com/s?wd=dd");

sub test{
 local($url)=shift;

 # 创建UserAgent对象
 $ua=LWP::UserAgent->new;

 # 调用HTML模块来取出链接并放入数组当中
 $p = HTML::LinkExtor->new(\&callback);

 # 通过GET的方式下载页面(引用了UserAgent对象)
 $res = $ua->request(HTTP::Request->new(GET => $url),
                      sub {$p->parse($_[0])});

 my $base = $res->base;

 @imgs = map { $_ = url($_, $base)->abs; } @imgs;

  print join("\n", @imgs), "\n";
}

sub callback{
  my($tag,%attr)=@_;

  return if $tag ne 'a';

  push(@imgs,values %attr);
}

 

posted @ 2013-05-08 17:17  墨迹哥's  阅读(247)  评论(0编辑  收藏  举报