云栖社区“华章计算机”公众号查看3.3网页更新策略
优采云 发布时间: 2021-05-29 06:02云栖社区“华章计算机”公众号查看3.3网页更新策略
本节摘自华章出版社、作者魏伟《掌握Python Web爬虫:核心技术、框架与项目实战》一书第3章和第3.3节,更多章节可访问查看云栖社区“华章电脑”公众号。
3.3 网页更新策略
网站 网页经常更新。作为爬虫,在网页更新后,我们需要重新抓取这些网页。那么什么时候爬行比较合适呢?如果网站更新太慢,爬虫爬虫太频繁,势必会增加爬虫和网站服务器的压力。如果网站更新快,但是爬取间隔比较长,我们爬取的内容版本会太旧,不利于新内容的爬取。显然,网站的更新频率越接近爬虫访问网站的频率,效果越好。当然,当爬虫服务器资源有限时,爬虫也需要根据相应的策略更新不同的网页。优先、高优先级的网页更新将获得更快的抓取响应。
具体来说,常见的网页更新策略主要有三种:用户体验策略、历史数据策略、聚类分析策略等,下面我们将分别进行说明。
当搜索引擎查询某个关键词时,会出现排名结果。在排名结果中,通常会有大量的网页。但是,大多数用户只关注排名靠前的网页,因此,在爬虫服务器资源有限的情况下,爬虫会优先更新排名结果最高的网页。这种更新策略,我们称之为用户体验策略,那么在这个策略中,爬虫什么时候抓取这些排名靠前的网页呢?此时会在抓取中保留相应网页的多个历史版本,并根据这些网页的内容更新、搜索质量影响、用户体验等信息进行相应分析,确定这些网页的抓取周期。历史版本。
此外,我们还可以利用历史数据策略来确定更新和抓取网页的周期。例如,我们可以根据某个网页的历史更新数据,通过泊松过程建模等手段来预测该网页的下次更新时间,从而确定该网页下次被抓取的时间,即确定更新循环。
以上两种策略都需要历史数据作为依据。有时候,如果一个网页是新的网页,就不会有对应的历史数据,而如果是基于历史数据进行分析,爬虫服务器需要保存对应网页的历史版本信息,这无疑给爬虫服务器带来了更多的压力和负担。如果要解决这些问题,则需要采用新的更新策略。比较常用的是聚类分析策略。那么什么是聚类分析策略?
在生活中,相信大家对分类已经很熟悉了。比如我们去商场的时候,商场里的商品一般都是分类分类的,方便顾客选择相应的商品。此时,产品分类的类别是固定的。 ,已经草拟了。但是,如果货物数量巨大,则无法提前对其进行分类,或者不知道将拥有哪些类型的货物。这个时候,我们应该如何解决商品的分类问题?
这时候可以使用聚类的方法来解决问题,并根据产品之间的共性进行相应的分析。
具有更多共性的商品归为一类。此时,产品聚类到的类别数量是不确定的,但可以保证聚类在一起的产品之间必须有一些共性,即根据“事物以“喜欢在一起”。
类似地,在我们的聚类算法中,将有一个类似的分析过程。
在爬虫更新的网页上使用聚类分析算法,我们可以做到这一点,如图3-4所示。
1) 首先,经过大量的研究,发现网页可能有不同的内容,但一般来说,属性相似的网页更新频率相似。这是聚类分析算法应用于爬虫网页更新的前提指导思想。
在2)有了1中的指导思想后,我们可以先对大量网页进行聚类分析。聚类后会形成多个类别,每个类别中的网页具有相似的属性,即一般具有相似的更新频率。
3) 聚类完成后,我们可以对同一聚类中的网页进行采样,然后计算采样结果的平均更新值,从而确定每个聚类的抓取频率。
以上是使用爬虫爬取网页时常见的三种更新策略。当我们掌握了算法思路之后,再跟进爬虫的实际开发时,编译出来的爬虫的执行效率会更高。并且执行逻辑会更加合理。