搜索引擎如何抓取网页(搜索引擎处理的主要对象是宽度()优先,兼顾深度的遍历策略)
优采云 发布时间: 2022-04-17 22:55搜索引擎如何抓取网页(搜索引擎处理的主要对象是宽度()优先,兼顾深度的遍历策略)
搜索引擎处理的主要对象是海量网页。一方面是为了节省带宽、计算和存储资源,另一方面是利用有限的资源抓取最有价值的网页,满足用户搜索需求。在处理海量网页时会有一定的策略。本文简要介绍了宽度(breadth)优先等主流网络爬取策略,兼顾深度遍历策略、非重复爬取策略、大站点优先级策略、不完全PageRank策略、OCIP策略、合作爬取策略。
1、宽度(宽度)优先,考虑到遍历策略的深度;
① 使用广度优先的理由:
重要的网页通常更靠近 torrent 网站;万维网的深度并没有我们想象的那么深,但是却出乎意料的宽广(中国万维网的直径只有17,也就是说任意两个页面之间点击17次就可以访问)。到达);
宽度优先有利于多爬虫协同爬行;
② 广度优先的存在会带来不良后果:
容易导致爬虫陷入死循环,不该抓取的重复抓取;
没有机会去抢该抢的;
③ 解决以上两个缺点的方法是深度抓取策略(Depth-First Trsversal)和非重复抓取策略
④ 为了防止爬虫以无限广度优先爬行,必须限制在一定深度。达到这个深度后,爬行停止。这个深度就是万维网的直径。当爬取在最大深度处停止时,总是希望从其他洪流站点更经济地访问太深的未爬取页面。限制抓取深度打破了无限循环的条件,即使发生有限次数后也会停止。
⑤ 评价:
宽度(breadth)优先,考虑到遍历策略的深度,可以有效保证爬取过程的封闭性,即在爬取过程中(遍历路径)始终爬取同域名下的网页,很少出现在其他域名网页。
2、不重复爬取策略
只需对改动较小的网页进行一次抓取,避免重复抓取占用大量CPU和带宽资源,从而在有限的资源区域内抓取更重要、质量更高的网页。
3、激光站点优先
通常大尺度的网站都是高质量的内容,网页的质量一般都比较高。以网站为单位衡量网页的重要性有一定的依据。对于URL队列中待爬取的网页,根据等待下载的页面数确定下载优先级。
4、部分PageRank
对于下载的网页(不完整的互联网页面的子集),与待爬取的URL队列中的URL一起形成一个网页集合,并在该集合中进行PageRank计算;URL队列中的网页按照PageRank分数从高到低排序,形成的序列就是爬虫接下来应该爬取的URL列表。
由于PageRank是全局算法,即当所有网页都下载完毕后,计算结果是可靠的,但爬虫在爬取过程中只能接触到部分网页,因此在爬取页面时并不可靠。PageRank 是计算出来的,所以称为不完全 PageRank 策略。
5、OCIP策略(在线页面重要性计算)
OCIP字面意思是“在线页面重要性计算”,是一种改进的PageRank算法。在算法开始之前,每个 Internet 页面都被分配了相同的值。每当下载某个页面 P 时,P 将其拥有的值平均分配给该页面中收录的链接,同时清除自己的值。对于URL队列中待爬取的网页,按照手头的值排序,先下载值较大的网页。
6、合作抓取策略(抓取加速策略)
增加爬虫数量可以提高整体的爬取速度,但是工作量需要划分到不同的网络爬虫中,保证分工明确,防止多个爬虫爬取同一个页面,浪费资源。
① 通过网页主机的IP地址进行分解,使得爬虫只爬取某个地址段的网页
对于中小型网站,出于经济原因,通常在一台服务器上提供不同的Web服务,使多个域名对应一个IP段;但大型网站如新浪、搜狐@>通常采用负载均衡的IP组技术,同一个域名对应多个IP地址。所以这种方式不方便
② 通过网页的域名进行分解,使得爬虫只抓取某个域名段的网页
将不同的域名分配给不同的爬虫进行爬取,一个爬虫只爬取一组固定域名下的网页;这确保了大型 网站 网页不会被重复爬取,即使是中小型 网站 爬取分配任务的可接受策略。因此,为了攻占大网站,遵循域名分解的策略更为合理。
内容教条,主要用来梳理常识用法。
这位先生致力于探索网络上的重大趣事,分享干货,偶尔抱怨,偶尔开车,调侃你的三观,透支你的诚信,请谨慎关注。