Labin、OpenSpider、天网 三款爬虫对比分析

本文对比分析了Labin、OpenSpider和天网三款爬虫,探讨了它们的URL提取、DNS解析、消重算法及架构。Labin采用单线程非阻塞爬取,自建DNS服务器;OpenSpider使用正则表达式提取URL;天网早期版本架构简单,后期发展为分布式爬虫。每款爬虫都有其特点,适合不同规模的网络爬取任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Labin、OpenSpider、天网 是三款比较著名的网络爬虫,其中天网现在已经做成了分布式爬虫,据称天网在ftp搜索方面水平比较高。这三款爬虫本人都接触过,对于Labin和天网的源代码也研究过一段时间。、

    Larbin:

    首先,Labin采用的socket方式是 单线程非阻塞式的爬取。具体的技术实现采用 linux/unix的poll轮询接口。当Larbin读取种子网站以后,会解析出网页中的url.从源代码中来看,Larbin提取url的技术水平并不高,只是采取简单的字符串操作。然而url是各种各样的,字符串操作能否提取90%以上html网页中的url,还值得怀疑。

    当被urls被提取以后,Labin建立了四个队列存取之:两个优先权队列、两个普通队列。为什么要这么做呢?我想做着可能这样想:优先权队列用作采集优先权高的url,而这个优先权怎么计算?这个要根据系统的实际情况了!如果是垂直搜索引擎,可能会根据倾向性、内容相关性来打分,分数高则优先级高。甚至会用分类、聚类或者各种评判手段,甚至pagerank/hits 算法来预先计算url的权重。如果是普通搜索引擎,那么可以这样计算打分:要不根据爬取的网页深度,要不根据是否location字段等等。Larbin中优先权是根据什么来计算的,我想读了上面的东西已经不重要了。

    既然提取了urls,就要对url进行域名解析。Larbin自建立了一个DNS服务器。关于DNS服务器的运作,鲜有说明。我自己是这样认为的:首先,本地(Larbin)的dns与外网的DNS进行交互,将外网的DNS的相关内容读取进来。然后,就可以响应larbin的解析请求了。所以当开启DNS服务器的时候,应该会有一个大量读取外网DNS内容的过程。

    Larbin似乎是将解析完毕的DNS存入一个管道之中,一头进,一头出。出的一头就是继续重复爬取了。另外Larbin的url消重算法是采用的是普通的bloom filter算法。不在累赘了。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值