Python爬虫:re解析

阅读: 评论:0

Python爬虫:re解析

Python爬虫:re解析

Python爬虫:re解析

  • 数据解析
  • re解析
  • python的re模块

数据解析

数据解析的三种方式

  1. re解析
  2. bs4解析
  3. xpath解析

re解析

re:regular expression,正则表达式,一种使用表达式的方式对字符串进行匹配的语法规则。抓取的页面源代码本质是一个很长的字符串,因此可以用正则表达式。

元字符:具有固定含义的特殊字符,默认只匹配一个字符串。

常见的元字符:

元字符含义
.匹配除换行符以外的任意字符
w匹配字母或数字或下划线
s匹配任意的空白符
d匹配数字
t匹配一个制表符
^匹配字符串的开始
$匹配字符串的结尾
W匹配非字母或数字或下划线
D匹配非数字
S匹配非空白符
ab匹配字符a或字符b
()匹配括号内的表达式,也表示一个组
[…]匹配字符组中的字符
[^…]匹配除了字符组中的所有字符

量词:用来控制元字符出现的次数

量词含义
*重复零次或更多次
+重复一次或更多次
重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n次到m次

贪婪匹配和惰性匹配

字符类型含义
.*贪婪匹配尽可能多得匹配
.*?惰性匹配尽可能少得匹配

python的re模块

1.findall用于匹配字符串中所有的符合正则的内容

import re
lst = re.findall(r"d+","我的电话是:10086,你的电话是:10088")
print(lst)

结果:

['10086', '10088']

2.finditer匹配字符串中所有的内容,返回的是迭代器,从迭代器中拿到内容需要.group()

import re
it = re.finditer(r"d+","我的电话是:10086,你的电话是:10088")
for i in it :up())

结果:

10086
10010

3.search返回的是match对象,找到一个结果就返回,拿数据需要.group()

import re
s = re.search(r"d+","我的电话是:10086,你的电话是:10088")
up())

结果:

10086

4.match是从头开始匹配

import re
s = re.match(r"d+","我的电话是:10086,你的电话是:10088")
up())s = re.match(r"d+","10086,你的电话是:10088")
up())

结果:

第一个报错:nonetype第二个:10086

5.预加载正则表达式

import re
obj = repile(r"d+")it = obj.finditer("我的电话是:10086,你的电话是:10088")
for i in it :up())

结果:

10086
10088

6.单独获取正则中的内容

(?P<分组名字>正则)进一步提取正则中的内容

import re
s = """
<div class='jay'><span id='1'>周杰伦</span></div>
<div class='jj'><span id='2'>林俊杰</span></div>
<div class='jolin'><span id='3'>蔡依林</span></div>
"""
#re.S:让.能匹配换行符
obj = repile(r"<div class='.*?'><span id='(?P<id>d)+'>(?P<singer>.*?)</span></div>",re.S)result = obj.finditer(s)
for it in result:up("singer"))up("id"))

结果:

周杰伦
1
林俊杰
2
蔡依林
3

本文发布于:2024-01-29 05:37:55,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170647788013076.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:爬虫   Python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23