搜索引擎如何抓取网页(搜索引擎处理的主要对象是海量的网页抓取策略,兼顾深度的遍历策略)
优采云 发布时间: 2021-09-18 21:04搜索引擎如何抓取网页(搜索引擎处理的主要对象是海量的网页抓取策略,兼顾深度的遍历策略)
搜索引擎处理的主要对象是海量网页。一方面,为了节省带宽、计算和存储资源,另一方面,为了利用有限的资源抓取最有价值的网页来满足用户的搜索需求,搜索引擎在处理海量网页时会有一定的策略
本文简要介绍了当前主流的网页爬行策略,如宽度优先、面向深度的遍历策略、非重复爬行策略、大站点优先策略、不完全PageRank策略、OCIP策略、协作爬行策略等
宽度(宽度)优先并考虑深度的遍历策略
1、采用宽度优先的原因:
重要的网页通常靠近*敏*感*词*网站;万维网的深度并不像我们想象的那么深,但却出乎意料的宽(中国万维网的直径和长度只有17,即点击17下就可以访问任意两个网页)
宽度优先有利于多爬虫协同捕获
2、宽度优先具有不利后果:
很容易使爬行动物陷入死亡循环,它们不应该反复抓取;没有机会抓住应该抓住的东西
3、解决上述两个缺点的方法是深度优先的trsversal和无重复
4、为了防止爬虫首先以无限宽度抓取,必须将其限制在某一深度,并在达到该深度后停止抓取,该深度是万维网的直径和长度。当爬行在最大深度处停止时,深度过深的未访问页面总是希望从其他*敏*感*词*站点更经济地到达。限制抓斗深度会破坏死循环的条件,即使循环发生,也会在有限的次数后停止
5、宽(宽)优先、深(深)兼顾的遍历策略能有效保证爬行过程的封闭性,即在爬行过程(遍历路径)中,同一域名下的网页总是被爬行,其他域名下的网页很少
无重复抓取策略
确保一个变化不大的网页只能抓取一次,避免重复抓取占用大量CPU和带宽资源,从而集中有限的资源区域抓取更重要、更高质量的网页
大型站点优先策略
通常大的网站是高质量的内容,网页的质量通常很高。以网站为单位衡量网页的重要性有一定的依据。对于要获取的URL队列中的网页,下载优先级根据等待下载的页面数确定
部分PageRank策略
对于下载的网页(不完整网页的子集),在URL队列中添加要捕获的URL,形成网页集合,并在此集合中执行PageRank计算;计算完成后,将要爬网的URL队列中的网页按照PageRank分数从高到低排序,形成一个序列,即爬网程序依次爬网的URL列表
由于PageRank是一种全局算法,即当所有网页下载时,计算结果是可靠的,但爬虫在爬行过程中只能接触部分网页,所以在爬行阶段爬行网页时无法进行可靠的PageRank计算,因此称为不完全PageRank策略
OCIP策略(在线页面重要性计算)
OCIP字面意思是“在线页面重要性计算”,这是一种改进的PageRank算法。在算法开始之前,每个互联网页面都被赋予相同的值。每当下载页面P时,P都会将其自身的值均匀地分配给页面中收录的链接,同时清除其自身的值。对于要获取的URL队列中的网页,将根据手头值的大小对其进行排序,并优先下载值较大的网页
协作捕获策略(捕获加速策略)
增加爬虫数量可以提高总体爬虫速度,但需要将工作负载划分为不同的web爬虫,以确保分工明确,防止多个爬虫对同一页面进行爬虫并浪费资源
通过对网络主机IP地址的分解,爬虫只能抓取地址段的网页
对于中小规模的网站,出于经济原因,通常在一台服务器中提供不同的web服务,因此多个域名对应一个IP段;然而,新浪、搜狐、网易和腾讯等大型网站公司通常使用负载均衡的IP组技术,同一域名对应多个IP地址
2.通过对网页域名的分解,爬虫只能抓取某个域名段的网页
为不同的爬虫分配不同的域名,爬虫只抓取固定域名集下的网页;这样可以确保大型网站网页不会重复爬网,而中小型网站即使重复爬网也可以接受策略分配任务。为了捕获较大的网站,域名分解策略更为合理