设计出品
扫描关注网站建设微信号

扫一扫微信二维码

Spider的抓取策略

新乡云优化2019-10-25经验之谈
Spider的抓取策略
在大型搜索引擎Spider的抓取过程中会有很多策略,有时也可能是多种策略综合使用。这里简单介绍一下比较简单的Spider抓取策略,以辅助大家对Spider工作流程的理解。Spider抓取网页,在争取抓取尽可能多网页的前提下,首先要注意的就是避免重复抓取,为此Spider程序一般会建立已抓取URL列表和待抓取URL列表(实际中是由哈希表来记录URL的两个状态)。
在抓取到一个新页面时,提取该页面上的链接,并把提取到的链接和已抓取URL列表中的链接进行逐一对比,如果发现该链接已经抓取过,就会直接丢弃,如果发现该链接还未抓取,就会把该链接放到待抓取URL队列的末尾等待抓取。
Spider眼中的互联网网页可以分为以下四类,如图2-2所示。
Spider的抓取策略
(1)已经抓取过的页面,即Spider已经抓取过的页面。
(2)待抓取页面,也就是这些页面的URL已经被Spider加入到了待抓取URL队列中,只是还没有进行抓取。
(3)可抓取页面,Spider根据互联网上的链接关系最终是可以找到这些页面的,也就是说当下可能还不知道这些页面的存在,但是随着Spider增量型的抓取,最终会发现这些页面的存在。
(4)暗网中的页面,这些网页和表层网络上的网页是脱钩的,可能这些页面中有链接指向以上三类网页,但是通过以上三类网页并不能找到这些页面,比如,网站内需要手动提交查询才能获得的网页,就属于暗网中的网页,据估计暗网要比非暗网大几个数量级。
全文搜索引擎的Spider一直致力于抓取全网的数据,现在Spider对于非暗网网页已经具备大量高效的抓取策略。对于暗网的抓取,
各个搜索引擎都在努力研究自己不同的暗网Spider抓取策略,百度对此推出了“阿拉丁”计划,鼓励有优质资源的网站把站内资源直接以XML文件的形式提交给百度,百度会直接进行抓取和优先排名显示。这里主要讨论Spider针对非暗网中网页的抓取策略。
当Spider从一个入口网页开始抓取时,会获得这个页面上所有的导出链接,当Spider随机抓取其中的一个链接时,同样又会收集到很多新的链接。
此时Spider面临一个抓取方式的选择:
(1)先沿着一条链接一层一层地抓取下去,直到这个链接抓到尽头,再返回来按照同样的规则抓取其他链接,也就是深度优先抓取策略。
(2)还是先把入口页面中的链接抓取一遍,把新发现的URL依次进行入库排列,然后对这些新发现的页面进行遍历抓取,再把最新发现的URL进行入库排列等待抓取,依次抓取下去,也就是广度优先抓取策略。
①深度优先策略
深度优先策略即一条道走到黑,当沿着一个路径走到无路可走时,再返回来走另一条路。
如图2?3所示为深度优先抓取策略的示意图,假设A页面为Spider的入口,Spidei?在A页面上发现了1、7、11三个页面的链接,然后Spider会按照图中数字所标示的顺序依次进行抓取。当第一条路径抓到3页面时到头了,就会返回2页面抓取第二条路径中的4页面,在4页面也抓到头了,就会返回1页面抓取第三条路径中的5页面,并顺着一路抓下去,抓到头后会按照之前的规则沿一条一条路径抓下去。
2-3深度优先策略
②广度优先策略
广度优先策略即Spider在一个页面上发现多个链接时,并不是一条道走到黑,顺着一个链接继续抓下去,而是先把这些页面抓一遍,然后再抓从这些页面中提取下来的链接。如图2-4
Spider的抓取策略2
所不为广度优先抓取策略的不意图,假设A页面为Spider的入口,Spider?在A页面上发现了1、2、3三个页面。
当抓完1网页时,只是把1网页中4和5网页的链接放入待抓取URL列表,并不会继续抓1页面中的其他链接,而是抓2页面。当b级页面抓取完成时,才会抓取从b级页面中提取到c级页面中的4、5、6、7、8、9六个页面,等c级页面抓取完成后,再抓取从c级页面中提取到的d级新页面,依次持续抓取下去。
理论上Spider不论采用深度优先策略还是广度优先策略,只要时间足够,都可以把整个互联网上的网页抓取一遍。
但是搜索引擎本身的资源也是有限的,快速抓取全互联网有价值的页只是一种奢望而已,所以搜索引擎的Spider不是只使用一种策略无限地抓取新页面,而是采用两种策略相结合的方式来进行抓取。一般Spider可以在域名级别的页面使用广度优先抓取策略,尽可能地收集更多的网站。
在网站内页级别一般会根据网站的权重综合使用广度和深度优先抓取策略,也就是说网站的权重越高,抓取量也会越大,刚上线的网站可能只会被抓一个首页。
这也是很多新网站在一定时间内,在搜索引擎中只被索引首页的原因之一。
上面讨论的两个策略是站在Spider只是单纯想抓取全互联网数据的基础上,所需要选择的策略。
实际在搜索引擎中,虽然Spider在尽力保证抓取页面的全面性,但是由于自身资源有限,所以在尽力抓取全网的同时,还要考虑对重要页面的优先抓取。
这个“重要页面”的定义应该是指在互联网中比较重要的页面,该页面内容应该具有影响力比较大、需要了解该内容的网民比较多或时效传播性比较强的特点。
体现到抓取策略上,就是这个页面的导入链接很多,或者是权重高的大站中的网页。总结来说,就是两个策略:重要网页优先抓取策略和大站链接优先抓取策略。
(1)重要页面优先抓取策略
一般认为页面的重要性,除了受寄主站点本身的质量和权重影响以外,就看导入链接的多少和导入链接的质量了。Spider抓取层面上的“重要页面”一般由导入的链接来决定。
在前面所讨论的抓取策略中,Spider一般都会把新发现的未抓取过的URL依次放到待抓取URL队列的尾端,等待Spider按顺序抓取。
在重要页面优先抓取的策略中就不是这样的了,这个待抓取URL队列的顺序是在不断变化的。
排序的依据一般是:页面获得的已抓取页面链接的多少和链接权重的高低。

文章关键词