爬虫数据的提取--正则
数据的提取
简单的说,数据提取就是从响应中获取我们想要的数据的过程
数据的分类
-
非结构化的数据:html等
处理方法:正则,xpath
-
结构化的数据:json,xml等
处理方法:转化为python数据类型
正则表达式
正则表达式又称为规则表达式,通常被用来检索和替换哪些符合某个规则的文本
正则表达式匹配规则
python中的re模块
python中可以用内置的re模块来使用正则表达式
-
python中原始字符串r
利用原始字符串可以匹配特殊符号,如果不行则需要对特殊符号进行转义
-
re模块的使用步骤
- 使用
compile()
函数将正则表达式的字符串形式编译为一个Pattern
对象 - 通过
Pattern
对象提供的一系列方法对文本进行匹配查找,获得匹配结果,一个 Match 对象。 - 最后使用
Match
对象提供的属性和方法获得信息,根据需要进行其他的操作
- 使用
-
compile函数
compile函数用于编译正则表达式,生成一个pattern对象
-
pattern对象常用方法
match 方法:从起始位置开始查找,一次匹配
search 方法:从任何位置开始查找,一次匹配
findall 方法:全部匹配,返回列表
finditer 方法:全部匹配,返回迭代器
split 方法:分割字符串,返回列表
sub 方法:替换
在爬虫一般用的比较多的方法是findall
-
贪婪模式与非贪婪模式
- 贪婪模式:在整个表达式匹配成功的前提下,尽可能多的匹配 ( * );
- 非贪婪模式:在整个表达式匹配成功的前提下,尽可能少的匹配 ( ? );
- Python里数量词默认是贪婪的。
正则表达式是提取数据最快的方法,一般较为复杂,用来查找指定数据