《精通Python网络爬虫:核心技术、框架与项目实战》——3.3 网页更新策略

简介:

本节书摘来自华章出版社《精通Python网络爬虫:核心技术、框架与项目实战》一书中的第3章,第3.3节,作者 韦 玮,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 网页更新策略

一个网站的网页经常会更新,作为爬虫方,在网页更新后,我们则需要对这些网页进行重新爬取,那么什么时候去爬取合适呢?如果网站更新过慢,而爬虫爬取得过于频繁,则必然会增加爬虫及网站服务器的压力,若网站更新较快,但是爬虫爬取的时间间隔较长,则我们爬取的内容版本会过老,不利于新内容的爬取。显然,网站的更新频率与爬虫访问网站的频率越接近,则效果越好,当然,爬虫服务器资源有限的时候,此时爬虫也需要根据对应策略,让不同的网页具有不同的更新优先级,优先级高的网页更新,将获得较快的爬取响应。

具体来说,常见的网页更新策略主要有3种:用户体验策略、历史数据策略、聚类分析策略等,以下我们将分别进行讲解。

在搜索引擎查询某个关键词的时候,会出现一个排名结果,在排名结果中,通常会有大量的网页,但是,大部分用户都只会关注排名靠前的网页,所以,在爬虫服务器资源有限的情况下,爬虫会优先更新排名结果靠前的网页。这种更新策略,我们称之为用户体验策略,那么在这种策略中,爬虫到底何时去爬取这些排名结果靠前的网页呢?此时,爬取中会保留对应网页的多个历史版本,并进行对应分析,依据这多个历史版本的内容更新、搜索质量影响、用户体验等信息,来确定对这些网页的爬取周期。

除此之外,我们还可以使用历史数据策略来确定对网页更新爬取的周期。比如,我们可以依据某一个网页的历史更新数据,通过泊松过程进行建模等手段,预测该网页下一次更新的时间,从而确定下一次对该网页爬取的时间,即确定更新周期。

以上两种策略,都需要历史数据作为依据。有的时候,若一个网页为新网页,则不会有对应的历史数据,并且,如果要依据历史数据进行分析,则需要爬虫服务器保存对应网页的历史版本信息,这无疑给爬虫服务器带来了更多的压力和负担。如果想要解决这些问题,则需要采取新的更新策略。比较常用的是聚类分析策略。那么什么是聚类分析策略呢?

在生活中,相信大家对分类已经非常熟悉,比如我们去商场,商场中的商品一般都分好类了,方便顾客去选购相应的商品,此时,商品分类的类别是固定的,是已经拟定好的。但是,假如商品的数量巨大,事先无法对其进行分类,或者说,根本不知道将会拥有哪些类别的商品,此时,我们应该如何解决将商品归类的问题呢?

这时候我们可以用聚类的方式解决,依据商品之间的共性进行相应分析,将
共性较多的商品聚为一类,此时,商品聚集成的类的数目是不一定的,但是能保证的是,聚在一起的商品之间一定有某种共性,即依据“物以类聚”的思想去实现。

同样,在我们的聚类算法中,也会有类似的分析过程。

将聚类分析算法运用在爬虫对网页的更新上,我们可以这样做,如图3-4所示。


f4d4da8759398f071622104a0b101a36811fbf1e

1)首先,经过大量的研究发现,网页可能具有不同的内容,但是一般来说,具有类似属性的网页,其更新频率类似。这是聚类分析算法运用在爬虫网页的更新上的一个前提指导思想。

2)有了1中的指导思想后,我们可以首先对海量的网页进行聚类分析,在聚类之后,会形成多个类,每个类中的网页具有类似的属性,即一般具有类似的更新频率。

3)聚类完成后,我们可以对同一个聚类中的网页进行抽样,然后求该抽样结果的平均更新值,从而确定对每个聚类的爬行频率。

以上,就是使用爬虫爬取网页的时候,常见的3种更新策略,我们掌握了其算法思想后,在后续我们进行爬虫的实际开发的时候,编写出来的爬虫执行效率会更高,并且执行逻辑会更合理。

相关文章
|
4天前
|
SQL 安全 算法
网络安全与信息安全的全面解析:应对漏洞、加密技术及提升安全意识的策略
本文深入探讨了网络安全和信息安全的重要性,详细分析了常见的网络安全漏洞以及其利用方式,介绍了当前流行的加密技术及其应用,并强调了培养良好安全意识的必要性。通过综合运用这些策略,可以有效提升个人和企业的网络安全防护水平。
|
4天前
|
存储 安全 网络安全
探索云计算环境下的网络安全新策略
在数字化时代,云计算作为一种新兴技术,正逐渐成为企业和个人数据存储、处理的重要方式。然而,随着云服务的普及,网络安全问题也日益凸显,成为制约云计算发展的关键因素。本文将从云服务的基本概念入手,深入探讨云计算环境中的网络安全挑战,并提出相应的解决策略,以期为云计算的安全发展提供参考。
97 66
|
4天前
|
数据采集 UED Python
如何应对动态图片大小变化?Python解决网页图片截图难题
随着互联网技术的发展,电商平台如京东(JD.com)广泛采用动态内容加载技术,给爬虫获取商品图片带来挑战:图片无法直接保存,尺寸动态变化,且存在反爬机制。本文介绍如何利用Python结合代理IP、多线程技术解决这些问题,通过Selenium和Pillow库实现动态网页图片的屏幕截图,有效绕过反爬措施,提升数据抓取效率和稳定性。具体步骤包括设置代理IP、使用Selenium抓取图片、多线程提升效率以及设置cookie和user-agent伪装正常用户。实验结果显示,该方法能显著提升抓取效率,精准截图保存图片,并成功绕过反爬机制。
|
4天前
|
存储 人工智能 安全
云端防御:云计算时代的网络安全策略
随着云计算技术的飞速发展,企业和个人越来越依赖云服务来存储和处理数据。然而,云环境的开放性和灵活性也带来了新的安全挑战。本文将探讨在云计算时代,如何通过有效的网络安全策略保护数据不受威胁。我们将深入分析云服务的安全问题,并介绍一些实用的网络安全措施,帮助读者建立起一套完整的云端防御体系。
17 1
|
5天前
|
数据采集 中间件 开发者
Scrapy爬虫框架-自定义中间件
Scrapy爬虫框架-自定义中间件
18 1
|
5天前
|
数据采集 中间件 Python
Scrapy爬虫框架-通过Cookies模拟自动登录
Scrapy爬虫框架-通过Cookies模拟自动登录
19 0
|
1天前
|
存储 安全 网络安全
云计算与网络安全:技术挑战和策略
【10月更文挑战第3天】在数字化时代,云计算已经成为企业存储、处理和分析数据的首选平台。然而,随着其应用的广泛性,网络安全问题也日益凸显。本文将探讨云计算环境中的安全挑战,包括数据泄露、服务中断等风险,并介绍一些实用的安全措施,如加密技术和访问控制策略。通过这些措施,我们可以更好地保护云环境,确保数据的完整性和隐私。
|
1天前
|
数据采集 JavaScript 前端开发
JavaScript逆向爬虫——使用Python模拟执行JavaScript
JavaScript逆向爬虫——使用Python模拟执行JavaScript
11 2
|
3天前
|
存储 安全 云计算
云上防线:云计算时代的网络安全策略
【10月更文挑战第1天】云上防线:云计算时代的网络安全策略
15 2
|
3天前
|
供应链 安全 网络安全
探索云计算环境下的网络安全新策略
在信息技术飞速发展的今天,云计算已成为推动企业创新和效率提升的关键力量。然而,随着云服务的普及,网络安全和信息安全问题也日益凸显,成为制约云计算发展的重要瓶颈。本文深入探讨了云计算环境中的网络安全挑战,分析了当前主流的云服务安全技术,包括数据加密、访问控制、身份验证等,并提出了一系列创新性的网络安全管理策略。通过对比传统网络安全措施与云计算环境下的安全需求,本文旨在为企业和个人用户提供一套全面而实用的云计算安全防护指南,以应对日益复杂的网络威胁,确保信息资产的安全与完整。