爬虫的一般分为四步,第二个步骤就是对爬取的数据进行解析。
python爬虫一般使用三种解析方式,一正则表达式,二xpath,三BeautifulSoup。
这篇博客主要记录下正则表达式的使用。
正则表达式
. 匹配除“\
n
”之外的任何单个字符。
* 匹配前面的子表达式零次或者多次。
+ 匹配前面的子表达式一次或者多次。
? 匹配前面的子表达式零次或者一次。
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。
$ 匹配输入字符结束的位置。
{n} 确定匹配n次。
{n,} 至少匹配n次。
{n,m} 最少匹配n次,最多匹配m次。
? 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。
x|y 匹配x或者y
[xyz] 匹配集合中的任意一个字符。
[^xyz] 匹配未包含的任意字符。
[a-z] 匹配a-z.
[^a-z] 匹配不在a-z的任意字符。
\b 匹配一个单词边界.
\B 匹配一个非单词边界。
\d 匹配任意一个数字字符。
\D 匹配任意一个非数字字符。
\w 匹配数字字母下划线
\W 匹配非数字字母下划线
\s 匹配任意空白字符 \n \r \0 \t ''
\S 匹配任意一个非空白字符
\A 匹配字符串开头 ^
\Z 匹配字符串结尾 $
贪婪模式: .*
非贪婪(惰性)模式: .*?
正则表达式的分组()
格式 (?P<name>regex) 其中name就是起的名字
e.g. 'hello (?P<cat>kitty)'
给kitty正则表达式的子组起了个名字cat
调用格式 : (?P=name) name是要调用的子组名称
re.I : 忽略大小写
re.M :多行匹配
re.S :单行匹配
正则表达式匹配实例
import re
re模块是python的标准库模块,是用来处理正则表达式的
re.findall(regex,string)
功能:使用regex 去匹配string中的内容,如果匹配到则以一个列表的方式进行返回
使用正则爬取猫眼电影top100:
https://www.cnblogs.com/xiaozx/p/10680548.html
抓取糗事百科图片: