|
分析了下代码,之前官方那段其实很简单,只要理解了,就能随意改动了。
根据自己的想法,目前想做的是全方位爬虫,并不是类似如此简单的爬,
简单的整理了下这个单例的抓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);
}
|
|
|