正则表达式
正则语法:使用元字符进行排列组合用来匹配字符串
常用元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白字符
\d 匹配数字
\n 匹配一个换行符
\t 匹配制表符
^ 匹配字符串的开始
$ 匹配字符串的结尾
\W 匹配非字母或者数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符a或字符b
( ) 匹配括号内的表达式,也宝石一个组
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
量词:控制前面的元字符出现的次数
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{ n } 重复n次
{ n, } 重复n次或更多次
{ n,m } 重复n到m次
贪婪匹配和惰性匹配
.* 贪婪匹配
.*? 惰性匹配
爬虫用的最多的是惰性匹配
re模块
1findall查找所有,返回list
2search会进行匹配,返回match对象
但是如果匹配到了第一个结果,就会返回这个结果,
如果匹配不上search返回的则是None
3match只能从字符串开头进行匹配
4finditer和findall差不多,只不过这时返回的是迭代器
5预加载正则表达式
obj = re.compile(r'\d+')
6(?P<分组名字>正则) 可以单独从正则匹配的内容中进一步提取内容