搜索引擎处理的主要对象是海量网页。一方面为了节省带宽、计算和存储资源,另一方面为了利用有限的资源抓取最有价值的网页来满足用户的搜索需求,搜索引擎在处理海量网页时会有一定的策略。本文简要介绍了几种主流的网页抓取策略,如宽度优先、深度遍历策略、非重复抓取策略、大站优先策略、不完全页面排序策略、OCIP策略和协同抓取策略。
1.宽度优先、兼顾深度的遍历策略;
①采用广度优先的理由:
重要网页往往靠近种子网站;万维网的深度没有我们想象的那么深,但是却出乎意料的宽(中国万维网的直径和长度只有17,也就是点击17次就可以访问任意两个页面);
宽度优先有利于多种爬行动物的协同爬行;
②广度优先有不利结果:
容易造成爬行动物陷入无限循环,不宜反复抓取;
该抢的没机会抢;
③解决上述两个缺点的方法是深度优先和非重复爬行
(4)为了防止爬虫先无限宽度爬行,必须限制在一定深度,达到这个深度后停止爬行,这个深度就是万维网的直径和长度。当爬行停止在最大深度时,那些太深并且没有被爬行的网页总是期望从其他种子站点更经济地到达。限制抓取深度会破坏无限循环的条件,即使循环发生,也是有限次后停止。
⑤评价:
宽度(广度)优先和深度遍历策略可以有效保证抓取过程中的封闭性,即在抓取过程中(遍历路径)始终抓取相同域名下的网页,其他域名下的网页很少出现。
2.不要重复捕获策略
保证一个变化不大的网页只能抓取一次,防止重复抓取占用大量CPU和带宽资源,从而将有限的资源区域集中起来抓取更重要、质量更高的网页。
3.拉瑟网站第一
通常大型网站都是高质量的内容,网页质量一般更高。从网站的角度来衡量网页的重要性是有一定依据的。对于URL队列中待抓取的网页,根据等待下载的页数判断下载优先级。
4.部分页面排序策略
对于下载的网页(不完整网页子集),在待抓取的URL队列中添加URL,形成网页集合,并在该集合中进行PageRank计算;计算完成后,对待抓取的URL队列中的网页按照PageRank评分从高到低排序,形成的序列就是爬虫接下来要依次抓取的URL列表。
PageRank是一个全局算法,即当所有网页下载完毕后,其计算结果是可靠的。但是爬虫在抓取过程中只能接触到部分网页,因此在抓取网页时无法进行可靠的PageRank计算,所以称之为不完全PageRank策略。
5.OCIP策略(在线页面重要性计算)
OCIP字面意思是“在线页面重要性计算”,被认为是一种改进的页面排序算法。在算法启动之前,每个网页都被赋予相同的数值。下载一个页面P时,P将自己的数值平均分配给页面中包含的链接,并清除空自己的数值。对于要抓取的URL队列中的网页,按照手头的数值排序,先下载数值较大的网页。
6.合作抓取策略(抓取加速策略)
增加爬虫数量可以提高整体抓取速度,但需要将工作量划分到不同的web爬虫中,以保证分工明确,防止多个爬虫抓取同一页面,浪费资源。
(1)通过网络主机的IP地址进行分解,使得爬虫只抓取某个地址段的网页
对于中小型网站,出于经济考虑,通常在一台服务器上提供不同的web服务,这样多个域名对应一个IP段;而新浪、搜狐等大型网站通常采用负载均衡的IP组技术,同一个域名对应多个IP地址。所以这种方式不方便
(2)分解网页域名,使得爬虫只抓取某个域名段的网页
不同的域名分配给不同的爬虫进行抓取,一个爬虫只抓取一组固定域名下的网页;这样就保证了大型网站的网页不会被重复抓取,即使中小型网站被重复抓取,也能接受分配任务的策略。因此,为了捕捉大型网站,遵循域名分解的策略更为合理。
内容比较教条,主要用于整理常识的使用。
我致力于探索网上所有有趣的东西,分享干货,偶尔抱怨,偶尔开车,调侃你的三观,透支你的节操。请注意。
微信微信官方账号:julonpro
微博:龙军网络科技
1.《爬虫网 搜索引擎爬虫网页抓取策略》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《爬虫网 搜索引擎爬虫网页抓取策略》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/1246388.html