很多人看来的爬虫是神乎其神的,也造成一个最常见的“实践后的经验之谈”——实践证明百度爬虫会秒收原创的内容!
当然在任何一个略懂搜索引擎原理的人眼中,这就是毫不靠谱的实践。如果说实践是验证真理的方式的话,那前提要是有了比较完善的理论假设以后再去验证的。而像爬虫根本没有分析内容的能力,怎可能判断页面内容是否原创以后再进行收录呢?
甚至有人认为爬虫根本就不会去抓取采集的内容,这就更奇怪了,爬虫不是先知,抓取之前怎么会知道页面是否是采集的呢?(这里不考虑一个特殊情况,即搜索引擎可能参考网站整体原创率来决定抓取优先级的问题,但这个比较深了)
搜索引擎四个系统:下载、分析、索引、查询,这四块的工作基本独立的,判断采集与否的工作处于分析系统。而且估计是出于大规模页面查重的效率考虑,重复页面一般被索引以后隔比较长的时间才会被删除。即,搜索引擎收录页面与否,至少和这个页面本身质量无关。
现在已经说明了爬虫无法判断页面质量,但其实严格意义上,爬虫连提取链接的作用都没有,它只是单单一个TCP/IP程序而已。但分析链接的事情总是要做的,不然爬虫也没法抓取新的页面了。准确的讲,分析链接是交由“调度员”来做的。爬虫1抓取页面,页面交给调度员1分析,调度员1把所有发现的链接存到URL库1,并把一部分调度员认为重要的链接返回爬虫1,让爬虫1去抓取那些重要的页面。同时,爬虫1抓取过的页面交给Page库1,如果Page库1里面的页面和URL库1里面重复的话,就不再重复抓取。
大型商业搜索引擎都是多爬虫共同工作的,此时每个“调度员”还要和“总调度”交换信息,从而分配各个爬虫的具体工作。如果看到几个爬虫经常轮流的短时间内抓取一个页面多次的话,往往就是调度工作没做好。
不过其实诸如“调度员”之类的,归入爬虫程序里面也不能算错。只是一个说法相对严谨、一个说法相对宽松而已。但无论如何的是,爬虫只管下载,最多就配合调度员多几个花样来下载罢了。
本文来自http://www.csdinuan.com,允许转载,但请保留链接.