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