-
2.7 好的爬虫离不开正则表达式
-
正则表达式(regular expression)是一种字符串匹配模式或者规则,它可以用来检索、替换那些符合特定规则的文本。正则表达式几乎适用于所有编程语言,无论是前端语言 JavaScript,还是诸如许多后端语言,比如 Python、Java、C# 等,这些语言都提供了相应的函数、模块来支持正则表达式,比如 Python 的 re 模块就提供了正则表达式的常用方法。
在使用 Python 编写爬虫的过程中,re 模块通常做为一种解析方法来使用。通过审查网页元素来获取网页的大体结构,然后使用解析模块来提取你想要的网页信息,最终实现数据的抓取。本节对正则表达式基本语法做简单讲解。
注意:学习本节知识之前,您应该已经掌握了正则表达式的使用方法。
正则表达式元字符
下表列出了常用的正则表达式元字符:
1) 元字符
2) 量词
3) 字符组
有时也会出现各种字符组成的字符组,这在正则表达式中使用[]表示,如下所示:
贪婪模式非贪婪模式
正则表达式默认为贪婪匹配,也就是尽可能多的向后匹配字符,比如 {n,m} 表示匹配前面的内容出现 n 到 m 次(n 小于 m),在贪婪模式下,首先以匹配 m 次为目标,而在非贪婪模式是尽可能少的向后匹配内容,也就是说匹配 n 次即可。
贪婪模式转换为非贪婪模式的方法很简单,在元字符后添加“?”即可实现,如下所示:
正则表达式转义
如果使用正则表达式匹配特殊字符时,则需要在字符前加\表示转意。常见的特殊字符如下:
* + ? ^ $ [] () {} | \
- 留下你的读书笔记
- 你还没登录,点击这里
-
用户笔记留言