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";
                }
            }

        }
    }
}

 

你可能感兴趣的:(Perl 未完工的爬虫)