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