爬虫03
数据解析
- re解析
- bs4解析
- xpath解析
re(regular expression)正则表达式
含义:一种使用表达式对字符串进行匹配的语法规则
在线测试网站:在线正则表达式测试 (oschina.net)
语法:使用元字符进行排列组合用来匹配字符串(元字符:具有固定含义的特殊字符)
常用元字符
匹配字符内容
| 符号 | 代表意思 | 使用场景 |
|---|---|---|
| \d | 数字0-9 | \d 匹配单个数字,1、2、3 |
| \D | 非数字 | \D 匹配单个非数字,a、-、' |
| \w | 字母、数字、下划线 | \w 匹配单个字母、数字、下划线,a、1、_ |
| \W | 非字母、数字、下划线 | \W 匹配单个非字母、数字、下划线,{、-、[ |
| \s | 空白字符 | \s 匹配单个空格、回车(\n)、制表符(\t) |
| \S | 非空白字符 | \S 匹配单个非空格、换行(\n)、制表符(\t) |
| . | 匹配除换行之外的所有字符 | . 单个换行之外所有字符,一个.只默认匹配一个字符串 |
| a|b | 匹配字符a或字符b | a|b 或者的意思,匹配出a或匹配出b,如果都有就两个都匹配出来 |
匹配位置
| 符号 | 代表意思 | 使用场景 |
|---|---|---|
| ^ | 字符串开始位置 | (^)abc 匹配字符串开头位置,a前面的位置。比如^\d就表示开始之后第一个出现的必须是数字 |
| $ | 字符串结束位置 | abc($) 匹配字符串结束位置,c后面的位置。 |
| \b | 单词(\w)与非单词之间的位置 | a(\b)= 匹配"a"与"="之间的位置 |
| \B | 字符与字符之间的位置 | a(\B)b 匹配"a"与"b"之间的位置 |
| [....] | 匹配字符组中的字符 | 匹配[....]里有出现的字符,若[a-z0-9_]则表示匹配有出现字母a到z,数字0到9,下划线的内容 |
| [^....] | 匹配除了字符组中字符的所有字符 | [^....]出现的全都不匹配 |
| () | 匹配括号内的表达式,也表示一个组 | |
| 这里的元字符只是匹配位置,通过使用位置元字符来限制、过滤指定位置条件的内容。 |
匹配次数 量词 控制前面元字符出现的次数
| 符号 | 代表意思 | 使用场景 |
|---|---|---|
| * | 重复0次及0次以上 | \d* 匹配数字,123、02、空 |
| + | 1次及1次以上 | \d+ 匹配数字,123、02、3 |
| ? | 0次或1次 | \d? 匹配数字,2、空 |
| m次到n次 | \d{1,3} 匹配数字,2、12、123 | |
| n次 | \d{2} 匹配数字,12 | |
| n次及n次以上 | \d{2,} 匹配数字,12、123、1234 |
贪婪匹配和惰性匹配(爬虫最常用)
- .* 贪婪匹配 尽可能多的匹配内容
- .*? 惰性匹配 尽可能少的匹配内容 先. * 尽可能多的内容然后?会回溯,找到最少的那个

浙公网安备 33010602011771号