爬虫 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) 协议