当前位置:首页>python>python爬虫篇之re解析

python爬虫篇之re解析

  • 2026-09-10 22:08:47
python爬虫篇之re解析

4.6

re解析

目录:

1、re解析

(1)常用元字符

(2)量词

(3)贪婪匹配和惰性匹配

(4)re模块功能使用案例

        ① findall

        ② search

        ③ match

        ④ finditer (重点)

        ⑤ compile

        ⑥ 正则中的内容如何单独提前

1

re解析

Regular Expression,正则表达式,一种使用表达式的方式对字符串进行匹配的语法规则。

正则的优点:速度快,效率高,准确性高

正则的缺点:新手上手难度有点儿高

正则的语法:使用元字符进行排列组合用来匹配字符串,在线测试正则表达是:https://tool.oschina.net/regex/(这个地址可能打不开,可以自行用其他工具)

元字符:具有固定含义的特殊符号

(1)常用元字符

(2)量词

控制前面的元字符出现的次数

(3)贪婪匹配和惰性匹配

(爬虫用得最多的是惰性匹配)

(4)re模块功能使用案例

① findall

findall查找所有,返回list

import retext = "我的电话号是10086,我的女朋友的电话是:10010"# findall:匹配字符串所有的符合正则的内容lst = re.findall(r"\d+", text)print(lst)

② search

search会进行匹配,但是如果匹配到了第一个结果,就会返回这个结果,如果匹配不上search返回则是None

import retext = "我的电话号是10086,我的女朋友的电话是:10010"# search,找到一个结果就返回,返回的结果是match对象,拿数据需要.group()s = re.search(r"\d+", text)print(s.group())

③ match

match只能从字符串的开头进行匹配

import retext = "我的电话号是10086,我的女朋友的电话是:10010"# match是从头开始匹配s = re.match(r"\d+", text)print(s.group())

④ finditer (重点)

finditer和findall差不多,只不过这是返回的是迭代器(重点)

import retext = "我的电话号是10086,我的女朋友的电话是:10010"#finditer:匹配字符串中所有的内容[返回的是迭代器]it = re.finditer(r"\d+", text)for i in it:    print(i.group())

⑤ compile

compile()可以将一个长长的正则进行预加载,方便后面的使用

import retext = "我的电话号是10086,我的女朋友的电话是:10010"#预加载正则表达式obj = re.compile(r"\d+")ret = obj.finditer(text)for it in ret:    print(it.group())ret = obj.findall("呵呵哒,我就不信你不换我1000000000000")print(ret)

⑥ 正则中的内容如何单独提前

单独获取到正则中的具体内容可以给分组起名字

import res = """<divclass='jwwy'><spanid='1'>曾经</span></div><divclass='qqy'><spanid='2'>不悔否</span></div><divclass='jqwy'><spanid='3'>好牌</span></div><divclass='vvy'><spanid='4'>忘川</span></div><divclass='jaqq'><spanid='5'>落泪</span></div>"""# (?P<分组名字>正则)可以单独从正则匹配的内容中选一步提前内容obj = re.compile(r"<divclass='.*?'><spanid='(?P<wahaha>\d+)'>.*?</span></div>", re.S)result = obj.finditer(s)for it in result:    print(it.group("wahaha"))

  python爬虫须知

🔸 守规矩:爬前先看 robots.txt,尊重网站规则。

🔸 有礼貌:设置访问间隔(如 time.sleep),别把服务器挤爆。

🔸 装得像:带上合理 User-Agent和请求头,模拟真人浏览器。

🔸 不越界:绝不爬取个人隐私、机密或明确禁止的数据。

🔸 存得好:妥善处理数据,注明来源,注意脱敏。

最新文章

随机文章