Perl 未完工的爬虫
根据实际的逻辑,综合了各家所长,我决定手工测试下,是否能够写出满意的爬虫.对此还是写出来看看,一边写一边思考,今天写了一点,等回家继续想想.
根据逻辑思考,我觉得应该使用队列,和BS算法做基础,还要做链接索引.
其中最难的莫过于链接索引了,这个东西还是得思考下的.现在还没想好,等等再看吧.
#!/usr/bin/perl
use LWP::Simple;
use HTML::LinkExtor;
use threads;
use threads::shared;
use Thread::Queue;
use Thread::Semaphore;
use Bloom::Filter;
$base_url="http://bbs.chinaunix.com/";
$html = get($base_url);
$link_extor = HTML::LinkExtor->new(\&handle_links);
$link_extor->parse($html);
sub handle_links
{
($tag, %links) = @_;
if ($tag eq 'a') {
foreach $key (keys %links) {
if ($key eq 'href') {
if($links{$key} =~m#^(http|https)\:\/\/#){
if($links{$key}=~m#^$base_url#){
print "$links{$key}\n";
}
}else{
print $base_url.$links{$key}."\n";
}
}
}
}
}
页:
[1]