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

news2024/11/27 20:36:01

文章目录

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

🍀贪婪模式

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

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


🍀应用的场景

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

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

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

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


🍀总结

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


🍀非贪婪模式

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

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

🍀应用的场景

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

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

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

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

🍀总结

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

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

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():主要用来分割字符串
    请添加图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用层协议:httphttps,如何进行安全握手?

目录 应用层协议序列化与反序列化JSON网络版本计算器URLurlencode和urldecode HTTP协议简单认识HTTP协议HTTP协议格式HTTP的一些方法HTTP状态码Http的特征cookieConnection HTTPSHTTPS是什么加密与解密常见的加密方式对称加密非对称加密 什么是数据摘要什么是证书HTTPS如何安全…

【MySQL】MySQL数据库的进阶使用

别灰心,一切都会好起来的… 文章目录 一、MySQL基本查询1.对表内容进行Create(增加)1.1 insert语句的使用1.2 插入查询结果(删除表中的重复记录) 2.对表内容进行Retrieve(读取)3.对表内容进行Update(更新)4.对表内容进行Delete(删除)4.1 del…

056、查询优化之优化实战

快速定位问题SQL Dashboard->SQL Statements 快速定位慢查询 Dashboard -> slow queries DML语句优化 大量DML操作导致OOM 案例背景 索引扫描范围过大,无论优化器是选择index scan还是table scan,TiDB都倾向 TiKV corprocessor请求读取大…

Kotlin~Proxy代理模式

概念 又称委托模式,充当中介代理的类。 特点:让一个对象控制另一个对象的访问,让代理充当其他事物的接口。 角色介绍 抽象目标类具体目标类代理类 UML 代码实现 按实现分为静态和动态代理 interface PhoneSell {fun sell() }class Main…

MQ消费者报错

我在运行MQ消费者时 报了如下错误 Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (default-cli) on project consumer: Command execution failed. 解决办法 第一步&#xff1a; 在pom.xml文件上增加这个插件 <build><plugins><pl…

RPA界面元素定位与操控技术详解

什么是 RPA&#xff1f;RPA 是机器人流程自动化 Robotic Process Automation 的简写。在《智能RPA实战》中&#xff0c;我们这样定义&#xff1a;通过特定的、可模拟人类在计算机界面上进行操作的技术&#xff0c;按照规则自动执行相应的流程任务&#xff0c;代替或辅助人类完成…

OpenHarmony轻量设备获取网络中设备IP方式-组播

一、简介 ​ 在Openharmony的轻量和小型系统中&#xff0c;受限于cpu与内存资源等原因&#xff0c;网络协议一般使用lwip的实现。而且受限资源影响&#xff0c;lwip的socket数与端口数都通过宏定义控制在7-8个以内。在物联IOT实际应用中&#xff0c;经常会出现多台IOT设备在未…

MySQL 的缓存介绍

点击上方↑“追梦 Java”关注&#xff0c;一起追梦&#xff01; 一般情况下&#xff0c;我们不会用到数据库自带的缓存&#xff0c;所以 MySQL 默认是不开启缓存的。只有以读为主的业务&#xff0c;数据不变化的情况下&#xff0c;可以开启数据库的缓存。 查看缓存是否开启&…

NAT技术是什么?谈谈它的实现方式、优缺点以及作用

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 随着网络的不断发展&#xff0c;网络的应用也越来越多&#xff0c;有限的IPV4地址就显得不怎么够用&#xff0c;所以出现了NAT技术&…

Linux系统下的文件权限

目录 一&#xff1a;关于人的权限 二&#xff1a;关于文件本身的权限 三&#xff1a;修改文件属性 chmod 身份/-rwx chmod 八进制数 四、更改文件所有人 ​编辑五、umask权限掩码 umask权限掩码的计算 Linux系统不以文件后缀来区分文件类型&#xff0c;当我们使用ls -l命…

springCloud整合Nacos当配置中心和注册中心

前言 本文主要介绍SpringCloud使用Nacos当配置中心和注册中心&#xff0c;通过一个简单的Demo学习Naocs的基本配置以及不同微服务之间通过RestTemplate 及openfeign完成接口调用。 Nacos的安装配置 Nacos的学习资源主要有以下两个 Nacos管网 Nacos管网Nacos GitHub NacosGi…

智力差异性对课程的影响

“收藏从未停止&#xff0c;练习从未开始”&#xff0c;或许有那么一些好题好方法&#xff0c;在被你选中收藏后却遗忘在收藏夹里积起了灰&#xff1f;今天请务必打开你沉甸甸的收藏重新回顾&#xff0c;分享一下那些曾让你拍案叫绝的好东西吧&#xff01; 你可以从以下几个方…

debian/PVE安装好后拔显卡后连接不了网络

目录 前因 原因 解决办法 注意 需要主板bios支持跳过显卡自检 解决好主板bios问题然后再继续解决系统问题 前因 前几天装了个​Proxmox​ ve当做一个服务器7*24开机 但是由于转好系统后&#xff0c;显卡就不需要了 加上它耗电的原因&#xff08;我的gtx650平时空载有1…

JavaFx开发图形化界面常用颜色对照表

LightPink 浅粉色 #FFB6C1 255,182,193 Pink 粉红 #FFC0CB 255,192,203 Crimson 猩红 #DC143C 220,20,60 LavenderBlush …

【PostgreSQL内核学习(六)—— 工具使用学习】

工具使用学习 工具使用学习安装中出现的问题 声明&#xff1a;本文的工具学习内容来自于《小宇带你学pg内核分析》 工具的代码仓库链接为&#xff1a; https://github.com/shenyuflying/pgNodeGraph 此外&#xff0c;我还参考了以下文章&#xff1a; https://rng-songbaobao.bl…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio制作蛋仔派对兑换码工具

目录 &#x1f373;前言&#x1f373;实验介绍&#x1f373;产品介绍&#x1f373;抓包分析&#x1f603;登录分析&#x1f603;&#x1f603;第一步&#xff0c;获取验证码&#x1f603;&#x1f603;第二步&#xff0c;保存验证码&#x1f603;&#x1f603;第三步&#xff0…

RocketMQ教程-(4)-领域模型概述

Apache RocketMQ 是一款典型的分布式架构下的中间件产品&#xff0c;使用异步通信方式和发布订阅的消息传输模型。通信方式和传输模型的具体说明&#xff0c;请参见下文通信方式介绍和消息传输模型介绍。 Apache RocketMQ 产品具备异步通信的优势&#xff0c;系统拓扑简单、上下…

ffmpeg中filter_query_formats函数解析

ffmpeg中filter_query_formats主要起一个pix fmt引用指定的功能。 下下结论&#xff1a; 先看几个结构体定义&#xff1a; //删除了一些与本次分析不必要的成员 struct AVFilterLink {AVFilterContext *src; ///< source filterAVFilterPad *srcpad; ///<…

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

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

三十章:Segmenter:Transformer for Semantic Segmentation ——分割器:用于语义分割的Transformer

0.摘要 图像分割在单个图像块的级别上经常存在歧义&#xff0c;并需要上下文信息来达到标签一致性。在本文中&#xff0c;我们介绍了一种用于语义分割的Transformer模型- Segmenter。与基于卷积的方法相比&#xff0c;我们的方法允许在第一层和整个网络中对全局上下文进行建模。…