爬虫03

数据解析

  1. re解析
  2. bs4解析
  3. 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

贪婪匹配和惰性匹配(爬虫最常用)

  1. .* 贪婪匹配 尽可能多的匹配内容
  2. .*? 惰性匹配 尽可能少的匹配内容 先. * 尽可能多的内容然后?会回溯,找到最少的那个
posted @ 2022-09-12 19:06  凹尾狸花鱼  阅读(39)  评论(0)    收藏  举报