主页 分类 关于

爬虫 re模块的使用(牢饭吃到饱)

每天一个入狱小技巧

学习re模块先学正则表达式

findall

匹配字符串中所有的符号正则的内容

import re 

sdq = re.findall(r"\d+",613号实验品 亚亚,617号实验品 团团,618号实验品 红绿灯,619号实验品 火焰球,624号实验品 安琪,
625号实验品 鲁本,626号实验品 史迪仔)
print(sdq)

finditer

匹配字符串中所有的内容 [返回的是迭代器] 从迭代器中拿到内容需要.group

import re 

sdq = re.findall(r"\d+",613号实验品 亚亚,617号实验品 团团,618号实验品 红绿灯,619号实验品 火焰球,624号实验品 安琪,
625号实验品 鲁本,626号实验品 史迪仔)
for i sdq:
print(sdq.group())

search

返回第一个拿到的结果, 返回的结果是match对象, .group()是拿数据

import re 

sdq = re.search(r"\d+",613号实验品 亚亚,617号实验品 团团,618号实验品 红绿灯,619号实验品 火焰球,624号实验品 安琪,
625号实验品 鲁本,626号实验品 史迪仔)
print(sdq.group())

match

从头开始匹配, 前面没有就停止

import re 

sdq = re.search(r"\d+",613号实验品 亚亚,617号实验品 团团,618号实验品 红绿灯,619号实验品 火焰球,624号实验品 安琪,
625号实验品 鲁本,626号实验品 史迪仔)
print(sdq.group())

预加载正则表达式

从头开始匹配, 前面没有就停止

import re 

sdq = re.compile(r"\d+")

zdz = sdq.finditer("613号实验品 亚亚,617号实验品 团团,618号实验品 红绿灯,619号实验品 火焰球,624号实验品 安琪,
625号实验品 鲁本,626号实验品 史迪仔")

for it in sdz
print(it.group())

预加载正则表达式

从头开始匹配, 前面没有就停止

import re 

<div class='yy'><span id="613">亚亚</span></div>

<div class='tt'><span id="617">团团</span></div>

<div class='hld'><span id="618">红绿灯</span></div>

<div class='tt'><span id="619">团团</span></div>

<div class='lb'><span id="625">鲁本</span></div>

<div class='sdq'><span id="626">史迪奇</span></div>
# (?<分组名字>正则表达式)
obj = re.compile(r"<div class='.*?'><span id="(?<id>\d+)">(?P<name>.*?)</span></div>, re.S) # re.S: 让.能匹配换行符

result = obj.finditer(s)

for it in sdz
print(it.group())









作者: 我叫史迪奇
本文来自于: https://sdq3.link/reptile-re.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议