文/腾讯soso 邓大付
Spider系统是搜索引擎当中进行互联网上数据采集的一个核心子系统。在这个子系统当中,通常先种入一批种子Url,Spider对这些种子Url采集之后将链接提取入库,然后再对新入库的Url进行采集,并且负责对采集过的Url进行更新采集,如此循环。
随着各种垂直搜索引擎的不断发展,整个Spider在功能上又分为传统的收集互联网上所有数据的大Spider和服务于某个专门领域的聚焦Spider。两类Spider的不同之处在于,后者需要一个过滤器来过滤掉那些专门领域不要的Url。从架构上来讲,两类Spider通常都会采用分布式的架构。从技术实现上来说,Spider通常都会包括Url存储库,抓取调度模块,页面采集模块,链接分析和抽取模块,反垃圾模块等几个核心模块。本文就Url存储、抓取调度的主流技术和技术难点做一个简单的描述。
1:Url存储库:近些年互联网发展迅猛,互联网上的Url数量也极为庞大,所以对Url库的核心要求之一就是可扩展性必须要很强,在爬行过程中Url数目逐步增大时,要能及时的进行扩展。另外一个要求就是能便于抓取调度技术的实施。当然,对容错性和负责均衡方面也需要有充足的考虑。
2:抓取调度: 如果把Spider看成互联网上的蜘蛛的话,抓取调度模块就是蜘蛛的大脑,它会根据Url库里面收录的Url的情况,来调度指挥蜘蛛先爬哪些Url,后爬哪些Ur