根据实际的逻辑,综合了各家所长,我决定手工测试下,是否能够写出满意的爬虫.
对此还是写出来看看,一边写一边思考,今天写了一点,等回家继续想想.
根据逻辑思考,我觉得应该使用队列,和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"; } } } } }