数据解析
Requests等可以抓取整个网页,但是我们并不需要整个网页的内容,则可以通过数据提取得到需要的内容。
三种解析方式:
1.正则表达式解析
2.bs4解析
3.xpath解析
正则表达式
优点: 速度快、效率高、准确性高 缺点:上手困难
正则语法:使用元字符进行排列组合用来匹配字符串,在线测试正则表达式:tool.oschina.net/regex/
元字符: 具有固定含义的符号
常用元字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意空白字符 \d 数字 \n 换行符 \t 制表符
^ 字符串的开始 $ 字符串的结尾
\W 匹配非字母或数字或下划线 \D 匹配非数字 \S 匹配非空白字符 a|b a或b () 匹配括号内的表达式,也表示一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符
|
量词:
1 2 3 4 5 6
| * 重复零次或更多次 + 重复一次或多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次
|
贪婪匹配和惰性匹配:
案例:
1 2 3 4 5 6 7
| str: 一起打游戏吗,待会打游戏吗,还是现在打游戏呢? reg: 一.*?打游戏
结果: 一起打游戏
reg: 一.*打游戏 结果:一起打游戏吗,待会打游戏吗,还是现在打游戏
|