网络爬虫又称为网络蜘蛛,是一段计算机程序,它从互联网上按照一定的逻辑和算法抓取和下载互联网的网页,是搜索引擎的一个重要组成部分。一般的爬虫从一部分种子url开始,按照一定的策略开始爬取,爬取到的新的url在放入到爬取队列之中,然后进行新一轮的爬取,直到抓取完毕为止。
在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。网络爬虫的抓取策略有很多种,但不论方法如何,其基本目标一致:优先性选取重要网页进行爬取。下面和 神龙IP 一起看看常见的抓取策略吧~
一、宽度优先性遍历策略(Breath First)
将新下载网页包含的链接直接追加到待爬取URL队列末尾,就是宽度优先性遍历的核心。也就是说,这种方法并没有明确提出和使用网页重要性衡量标准,只是机械地将新下载的网页抽取链接,并追加到待爬取URL队列中,以此安排URL的下载序列。
二、OCIP策略(Online Page Importance Computation,在线页面重要性计算)
可以将其看作是一种改进的PageRank算法。在算法开始之前,每个互联网页面都给予相同的“现金”(cash),每当下载了某个页面P后,P将自己拥有的“现金”平均分配给页面中包含的链接页面,把自己的“现金”清空。而对于待爬取URL队列中的网页,则根据其手头拥有的现金金额多少排序,优先性下载现金最充裕的网页。
OCIP从大的框架上与PageRank思路基本一致,区别在于:PageRank每次需要迭代计算,而OCIP策略不需要迭代过程,所以计算速度远远快于PageRank,适合实时计算使用。同时,PageRank在计算时,存在向无链接关系网页的远程跳转过程,而OCIP没有这一计算因子。实验结果表明,OCIP是种较好的重要性衡量策略,效果略优于宽度优先性遍历策略。
三、大站优先性策略(Larger Sites First)
大站优先性策略思路很直接:以网站为单位来衡量网页重要性,对于待爬取URL队列中的网页,根据所属网站归类,如果哪个网站等待下载的页面最多,则优先性下载这些链接。其本质思想倾向于优先性下载大型网站,因为大型网站往往包含更多的页面。鉴于大型网站往往是著名企业的内容,其网页质量一般较高,所以这个思路虽然简单,但是有一定依据。