Python——re模块
简介
re是python的正则模块
方法
re.complie(str)
参数:
str:正则模式
返回值:pattern
返回值作用:获取正则对象
作用:获取正则对象
pattern.findall(content)
参数:
content:内容对象
返回值:list
返回值意义:获取content内所有匹配pattern的数据,整合成list返回
作用:获取content内所有匹配pattern的数据,整合成list返回
pattern.finditer(content)
参数:
content对象
返回值:iterator
返回值作用:获取content内所有匹配对象
作用:获取content内所有匹配对象
(可以这么想: finditer匹配大列表里所有符合对象)
pattern.search(content)
参数:
content对象
返回值:匹配对象
返回值作用:获取content内第一个匹配对象
作用:获取content内第一个匹配对象
(可以这么想,search获取大列表内第一个匹配对象)
(匹配对象)
i.group()
参数:无
返回值:string
返回值意义:获取匹配对象的字符串内容
作用:获取匹配对象的字符串内容
i.group(content)
参数:
content,用<标签>标识的标签名
返回值:string
返回值意义:获取匹配对象内的分组标签值
作用:获取匹配对象的分组标签值
for i in iterator:
i.group():将迭代器内数据作字符串输出
i.group("键值"):获取迭代器内分组数据值
i.groupdict():将每次迭代的数据的键值放入字典返回
(?P<标签>[\s\S]*?) ======> 用于在匹配对象内标记需要的数据
url = "https://zhwsxx.com/" headers = { "user-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" } params = { } response = requests.get(url=url,headers=headers,params=params) page_content = response.text #正则过滤 obj = re.compile('<div class="mh-item">[\s\S]*?<p class="mh-cover " style="background-image: url[(](?P<carUrl>[\s\S]*?)[)]"></p>[\s\S]*?<a href="[\s\S]*?">(?P<carName>[\s\S]*?)</a>[\s\S]*?<p class="chapter">(?P<carDetauk>[\s\S]*?)</p>') result = obj.finditer(page_content) for i in result: print(i.groupdict())