十一、正则表达式详解:掌握强大的文本处理工具(三)

文章目录

  • 🍀贪婪模式
    • 🍀应用的场景
    • 🍀总结
  • 🍀非贪婪模式
    • 🍀应用的场景
    • 🍀总结
  • 🍀贪婪模式与非贪婪模式在爬虫的应用
  • 🍀转义字符
  • 🍀正则表达式常见函数

🍀贪婪模式

在当今信息爆炸的时代,网络爬虫成为了一种强大的工具,帮助人们从海量的网络数据中快速提取有用信息。其中,贪婪模式的爬虫是一种特别高效的方式,能够在最短的时间内获取大量数据。本文将探讨贪婪模式下的网络爬虫的优势和应用。

贪婪模式爬虫的核心思想是通过遍历网络页面,尽可能快地获取所有能够找到的链接,然后依次爬取这些链接对应的页面。与其他模式相比,贪婪模式下的爬虫不会考虑页面的深度和复杂度,而只关注于尽可能多地获取数据。这使得贪婪模式下的爬虫能够以惊人的速度完成信息的收集,而不需要过多的人工干预。


🍀应用的场景

  • 搜索引擎索引:搜索引擎需要快速获取各种网页的数据,以建立强大的索引。贪婪模式的爬虫可以在较短的时间内遍历网络,获取大量网页数据,为搜索引擎提供丰富的搜索结果。

  • 数据挖掘研究:在数据科学领域,研究人员通常需要大量的数据来进行分析和建模。贪婪模式的爬虫可以帮助他们快速采集各种类型的数据,从而支持他们的研究工作。

  • 价格比较和竞争分析:电商行业经常需要对竞争对手的产品和价格进行监测和比较。贪婪模式的爬虫可以帮助电商企业快速获取竞争对手的产品信息和价格,以便进行及时调整和优化策略。

虽然贪婪模式的爬虫能够迅速获取大量数据,但也存在一些潜在的问题。首先,由于不对页面的质量和深度进行筛选,爬虫可能会收集到大量冗余或无用的数据,导致后续处理困难。其次,过于频繁的访问网站可能会对网站的正常运行造成负面影响,甚至引起法律纠纷。因此,在使用贪婪模式爬虫的同时,我们也需要谨慎处理这些问题,并遵守相关的法律法规和道德准则。


🍀总结

综上所述,贪婪模式下的网络爬虫是一种快速获取数据的利器。它能够以惊人的速度遍历网络,提取大量有用信息,为各种应用场景提供支持。然而,在使用贪婪模式爬虫时,我们也需要保持适度和合规,在尊重他人权益和保护网络环境的前提下,充分发挥其优势,推动信息时代的进步。


🍀非贪婪模式

网络爬虫作为一种收集网络数据的强大工具,非贪婪模式爬虫以继续注重精准数据获取而闻名。在本文中,我们将讨论非贪婪模式下的网络爬虫的原理、优势以及在各个领域的应用。

非贪婪模式的网络爬虫与贪婪模式相比,更加注重深度精确性。其核心思想是通过智能算法和策略,有选择性地爬取目标网页,确保所获取的数据具有高质量和高度精准性。相比贪婪模式,非贪婪模式的爬虫在选择爬取的页面时更加谨慎,注重对页面的内容、结构和相关性的分析。

🍀应用的场景

  • 商业情报和竞争分析:许多企业需要收集竞争对手的数据来进行市场情报和竞争分析。非贪婪模式的爬虫可以精确地爬取特定网站的特定信息,帮助企业了解竞争对手的产品、价格、市场份额等关键数据。

  • 新闻和舆情监测:新闻机构和公关公司需要及时了解各种新闻事件和舆情动态。非贪婪模式的爬虫可以有针对性地爬取新闻网站、社交媒体平台等,提供实时、全面且准确的新闻和舆情数据。

  • 学术研究和数据科学:在学术界和数据科学领域,研究人员需要获取特定领域的大量数据,以支持他们的研究工作。非贪婪模式的爬虫可以根据特定的数据需求和筛选条件,有目的地爬取相关数据,提供高质量的研究数据。

尽管非贪婪模式的网络爬虫在数据获取方面更为准确和精细,但也面临一些挑战。首先,由于对页面内容和结构的分析较为复杂,非贪婪模式的爬虫往往需要更高的计算和算法复杂度。其次,网站的更新和变化可能会导致爬虫获取的数据失效,需要及时调整和更新爬虫的规则和策略。

🍀总结

总之,非贪婪模式下的网络爬虫是一种追求数据精确性和准确性的重要工具。它通过智能算法和策略,有选择性地爬取目标网页,提供高质量、精准的数据支持。在各个领域的应用中,非贪婪模式爬虫发挥着重要的作用,帮助企业和研究人员快速获取可靠的数据,从而推动商业和科学的发展。

🍀贪婪模式与非贪婪模式在爬虫的应用

text = "cat111"
result1 = re.match('cat\d*',text)
result2 = re.match('cat\d+',text)
result3 = re.match('cat\d*?',text)  # ?代表非贪婪模式
result4 = re.match('cat\d+?',text)
print(result1.group())
print(result2.group())
print(result3.group())
print(result4.group())

运行结果如下
在这里插入图片描述

前两个属于贪婪模式下,对于*(0次或多次),+(至少1次),贪婪模式下能多匹配多匹配;
后两个属于非贪婪模式下,对于*,能少匹配则少匹配,故匹配0次,结果为cat,另一个则是cat1,因为+是至少匹配1次

🍀转义字符

text = "3......14"
result1 = re.match('\d\.+\d+',text)
result2 = re.match('\d.\d+',text)
print(result1.group())
print(result2.group())

运行结果如下
在这里插入图片描述

当我们需要如下表格中的符号的时候,我们就需要进行转义,通常使用 \ 或者 [ ]

符号说明
点(.)匹配任意字符
星(*)匹配0个或者多个
加号(+)匹配一个或多个
问号(?)要么0个要么1个
$以……为结尾
^中括号内取反 ;中括号外以……为开始

还有个或(|)

🍀正则表达式常见函数

  • re.match():从起始左到右进行匹配开头不满足即失败
  • re.search():在整个字符串中查找,返回第一个被找到的字符串只返回第一个
  • re.findall():在整个字符串中查找所有满足条件的字符串返回结果为列表
  • re.sub:替换字符串匹配出来的字符串进行人为替换
  • re.split():主要用来分割字符串
    请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/42694.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何查看小程序的APPID和AppSecret

小程序APPID可以在手机上打开小程序后,点击右上角三点: 然后点击中间位置的小程序名称,进入小程序介绍页面: 点击“更多资料”后,进入页面就可以看到上方有APPID: 另一种方法: 在微信公众平台登…

【iOS】CALayer的理解与简单使用

文章目录 前言一、UIView与CALayer的关系二、CALayer的简单使用1.圆角与裁剪2.contents3.边框属性 总结 前言 在实现网易云音乐demo开发的过程中,通过查阅网上资料,发现了我们可以对我们的视图进行裁剪来实现美观的体现,例如这样&#xff1a…

Vue--》打造个性化医疗服务的医院预约系统(三)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

C语言程序运行需要的两大环境《C语言进阶》

目录 程序的翻译环境和执行环境 翻译环境分为两部分,编译链接 第一步:预编译(预处理) 第二步,编译 第三步:汇编 关于运行环境分为四点: 关于链接库 程序的翻译环境和执行环境 在 ANSI C(标…

C语言第七课----------函数的定义及使用--------C语言重要一笔

作者前言 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们前来借鉴 __________________________________________________________ 目录 1.函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

物联网如何为智慧城市提供动力

智慧城市可以创造一个基础设施顺畅、效率提升的乌托邦,改善城市地区的生活质量,促进当地经济发展。 其影响意义重大,预计到 2024 年智慧城市基础设施的收入将超过 1000 亿美元。 从改善公共交通到解决犯罪问题和提高能源效率——应有尽有&am…

Fatdog64 Linux 814发布

导读Fatdog64 Linux是一个小型、桌面、64位的Linux发行版。 最初是作为Puppy Linux的衍生品,并增加了一些应用程序。该项目最新的版本,Fatdog64 814,是8xx系列的最后一个版本,未来的版本将转向9xx基础。 尽管它是该系列的最后一个…

【Ranking】50 Matplotlib Visualizations, Python实现,源码可复现

详情请参考博客: Top 50 matplotlib Visualizations 因编译更新问题,本文将稍作更改,以便能够顺利运行。 1 Ordered Bar Chart 有序条形图有效地传达项目的排名顺序。但是,将图表上方的指标值相加,用户将从图表本身获得准确的信息…

网络安全合规与标准的主要发展方向

网络安全合规就是避免违反网络安全有关的法律、法规、规章、合同义务以及任何安全要求,标准在网络安全合规工作中扮演着重要的角色。 一、标准在网络安全合规体系中的地位作用 网络安全合规体系包括网络安全有关的法律、法规、规章、其他规范性文件、及合同义务等…

[java安全]TemplatesImpl在Shiro550反序列化

文章目录 【java安全】TemplatesImpl在Shiro550反序列化Shiro的原理Shiro反序列化产生演示攻击过程payload使用key加密 构造不含数组的GadGets简单调用链 改造cc6为CommonsCollctionsShiro完整POC触发Shiro550漏洞进阶POC总结 【java安全】TemplatesImpl在Shiro550反序列化 Sh…

24.实现线性拟合和相关系数(matlab程序)

1.简述 1. 基本语法 1.1 corr函数基本语法 语法 说明 rho corr(X) 返回输入矩阵X中每对列之间的两两线性相关系数矩阵。 rho corr(X, Y) 返回输入矩阵X和Y中每对列之间的两两相关系数矩阵。 [rho, pval] corr(X, Y) 返回pval,一个p值矩阵&#xff0c…

OceanBase 压测时为什么冻结阈值在变化?

本文从源码角度分析了 OceanBase 压测中冻结阈值动态变化的原因,并给出运维建议。 作者:张乾 外星人2号,兼任五位喵星人的铲屎官。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转…

Vue3组合式API+TypeScript写法入门

文章目录 前言1.reactive2.ref3.props4.computed5.emit6.watch总结 前言 参考Vue3官网. 本篇以组合式API为例, 但不包含setup语法糖式写法. 原本打算结合class-component, Vue3不推荐就不用了: OverView|Vue Class Component. 而且是不再推荐基于类的组件写法, 推荐单文件组件…

NetSuite ERP顾问的进阶之路

目录 1.修养篇 1.1“道”是什么?“器”是什么? 1.2 读书这件事儿 1.3 十年计划的力量 1.3.1 一日三省 1.3.2 顾问损益表 1.3.3 阶段课题 2.行为篇 2.1协作 2.2交流 2.3文档管理 2.4时间管理 3.成长篇 3.1概念能力 3.1.1顾问的知识结构 …

【idea】idea全局设置Maven配置

Idea版本:2021.1.1 1、点击File->Close project 2、点击Customize->All settings 3、设置Maven

Vue 项目增加版本号输出, 可用于验证是否更新成功

webpack 1. vue.config.js 中增加以下配置, 此处以增加一个日期时间字符串为例, 具体内容可以根据自己需求自定义 // vue.config.js module.exports {chainWebpack(config) {config.plugin(define).tap(args > {args[0][process.env].APP_VERSION ${JSON.stringify(new …

Vue中TodoLists案例_删除

与上一篇Vue中TodoList案例_勾选有三个文件变化了 App.vue&#xff1a;添加了一个deleteTodo根据id删除方法&#xff0c;传递给儿子组件MyList <template><div id"root"><div class"todo-container"><div class"todo-wrap"…

浅谈小程序开源业务架构建设之路

一、业务介绍 1.1 小程序开源整体介绍 百度从做智能小程序的第一天开始就打造真正开源开放的生态&#xff0c;我们的愿景是&#xff1a;定义移动时代最佳体验&#xff0c;建设智能小程序行业标准&#xff0c;打破孤岛&#xff0c;共建开源、开放、繁荣的小程序行业生态。百度…

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的&#xff0c;所以建议被试内设计。