爬虫日记之07正则表达式(手把手教你区分贪婪匹配和惰性匹配)
爬虫日记之07正则表达式
2022-3-6
正则表达式
Regular Expression,正则表达式,一种使用表达式的方式对字符串进行匹配的语法规则
我们可以把抓取到的网页源代码看成一个超长的字符串,通过正则来从这个超长的字符串提取内容。
由于正则对于新手来说难度有点高,可以借助一些开源的在线工具。在线正则表达式测试
常见的元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\n 匹配一个换行符
\t 匹配一个制表符^ 匹配字符串的开始
$ 匹配字符串的结尾\W 匹配非字母或数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
量词
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
贪婪匹配和惰性匹配
.* 贪婪匹配
.*? 惰性匹配
注意此处谈贪婪匹配和惰性匹配的区别。
上图为贪婪匹配的匹配结果
上图为惰性匹配的匹配结果,匹配结果只会出现最后
写在后面:
我们一共主要介绍一下三种解析方式:
- re解析(运行速度最快)
- bs4解析(最简单,但是执行效率不高)
- xpath解析
以后会继续分享bs4和xpath的方法!欢迎监督~
爬虫日记之07正则表达式(手把手教你区分贪婪匹配和惰性匹配)相关推荐
- python抓取内存中的网页_『爬虫四步走』手把手教你使用Python抓取并存储网页数据!...
爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...
- 正则表达式 —— 一种模式描述语言(贪婪匹配与惰性匹配)
制表符(\t).空格.换行(\n)等,均可视为一种空白符, 则一个或多个空白符的 regex 即是:\s+ 1. 通配符 ?:与任意一个实际字符匹配, *:可以去任意一串字符(可以为空)匹配 例如: ...
- python爬虫爬取房源_手把手教你用Python网络爬虫爬取新房数据
项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以「惠民之家」 ...
- python网络爬虫网易云音乐_手把手教你写网络爬虫(1):网易云音乐歌单
大家好,<手把手教你写网络爬虫>连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意.本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻 ...
- 计算机主机背影便接口,装机日记二 背影哥手把手教你攒电脑
1背影哥手把手教你攒电脑 [天极网DIY硬件频道]上回我们说到了要为乡下的弟弟,组装一台价格在3300元左右的台式机.配置我已经选好,也向大家做了详细的介绍.不过老弟是个DIY外行对装电脑的事情即不懂 ...
- python 正则表达式 re (.*?)和(.*)的区别(贪婪模式非贪婪模式)惰性匹配
贪婪模式 .* 非贪婪模式 .*? 1. .匹配任意除换行符"\n"外的字符: 2. *表示匹配前一个字符0次或无限次: 3. +或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*? ...
- 以下用于数据存储领域的python第三方库是-『爬虫四步走』手把手教你使用Python抓取并存储网页数据!...
第一步:尝试请求 首先进入b站首页,点击排行榜并复制链接 https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950 ...
- 『爬虫四步走』手把手教你使用Python抓取并存储网页数据!
爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...
- java使用xml存储数据_『爬虫四步走』手把手教你使用Python抓取并存储网页数据!
菜鸟学Python 以下文章来源于早起Python ,作者刘早起 爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据 ...
最新文章
- Google Test(GTest)使用方法和源码解析——私有属性代码测试技术分析
- 去除JSP页面中JSTL、EL生成的空行
- numpy中求解范数(numpy.linalg.norm)以及各阶范数详解
- 【LeetCode】【HOT】160. 相交链表
- redis缓存跟数据库数据不一致问题解决
- 大数据分析常见的几种方法
- C++ 迭代器是指针吗
- 190330每日一句
- 初级软考-程序员 复习笔记
- 【办公自动化】基于Arcpy建立GIS三调转换工具箱,23万图斑shp文件分分钟转换完成
- 2018年Linux发行版颜值排行榜发布啦!
- Java swing组件介绍
- 9.1 交易数据的存储
- DNT精英论坛(暨.NET北京俱乐部)第2期:.NET依赖注入在区块链项目AElf中的实践
- 「话题」为什么微信、钉钉撤回消息的时限不同?小米200万改LOGO值不值?
- 场景实践:使用函数计算打包下载OSS文件
- 量子能--下一代能源革命
- SpringMVC-自定义类型转换器
- Linux操作系统第一讲
- mysql 编程算法_十大编程算法助程序员走上高手之路
热门文章
- 如何下载安装和使用 Office 2016的中文语言包?
- Brave浏览器 1.0正式面世, 为用户提供无与伦比的隐私保护和奖励
- python的os删除文件或者文件夹
- 2022年全国最新消防设施操作员(初级消防设施操作员)考试模拟题库及答案
- static定义静态方法
- Keras预测股票走势
- 有关计算机的英语作文一千字,英语作文一封信大学1000词5篇
- python之正则表达式(基础篇)
- js数据过滤算法搭建
- 对数据集“Netflix电影电视剧及用户观影数据“的分析处理和可视化