首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python网页爬虫常用通配符示例

Python网页爬虫常用通配符示例

作者头像
索旭东
发布2025-10-31 19:00:14
发布2025-10-31 19:00:14
1280
举报
文章被收录于专栏:具身小站具身小站

常用正则通配符

通配符

含义

爬虫示例

示例含义

.

匹配除换行符外的任意单个字符

“re.findall(r’href=”“(.*?)”“', html)”

提取HTML标签属性值

\d

匹配任意数字(等价于[0-9])

“re.search(r’id-(\d+)’ , url)”

提取URL中的数字ID

\w

匹配字母、数字、下划线(等价于[a-zA-Z0-9_])

“re.findall(r’class=”“(\w+)”“’ , html)”

提取CSS类名

\s

匹配空白字符(空格、制表符、换行等)

“re.sub(r’\s+’ , ’ ’ , html)”

清理多余空白字符

\S

匹配非空白字符

“re.findall(r’username=(\S+)', url)”

提取URL参数中的非空值

\D

匹配非数字字符

“re.search(r’page-(\D+)', url)”

提取URL中的非数字标识

\b

单词边界

“re.findall(r’\berror\b’, log)”

精确匹配完整单词

.*

贪婪匹配:匹配任意数量字符(除换行符)

“re.search(r’.*', html)”

匹配大段HTML内容(可能跨标签,慎用)

.*?

非贪婪匹配:匹配最少可能字符

“re.findall(r’(.*?)', html)”

最常用:精确提取段落内容

+

前一个字符出现1次或多次

“re.findall(r’\d+', text)”

提取连续数字(如价格、ID)

*

前一个字符出现0次或多次

“re.sub(r’’ , ‘’ , html)”

移除脚本标签(配合非贪婪)

?

前一个字符出现0次或1次

“re.search(r’https?’ , url)”

匹配http或https协议

^

匹配字符串开头

“re.match(r’^https://’ , url)”

验证URL协议类型

$

匹配字符串结尾

“re.search(r’.html$’ , url)”

检查URL是否为HTML页面

[abc]

匹配括号内任意一个字符

“re.findall(r’[A-Z][a-z]+', text)”

提取英文单词(首字母大写)

[^abc]

匹配不在括号内的任意字符

“re.search(r’[^.]+’ , domain)”

提取域名主干(不含后缀)

(a,b)

匹配a或b

“re.findall(r’png,jpg’ , img_url)”

检查图片格式

{n}

前一个字符出现n次

“re.search(r’\d{4}-\d{2}’ , date)”

匹配日期格式(如2023-10)

“{n, }”

前一个字符出现至少n次

“re.findall(r’\d{4 , }’ , year)”

匹配4位以上年份

\

转义字符:将特殊字符转为普通字符

“re.search(r’https://’ , url)”

匹配实际的斜杠/符号

(?=…)

正向先行断言:匹配…前面的内容

“re.findall(r’price:\d+(?=$)', text)”

提取带货币符号的价格数字

(?!..)

负向先行断言:不匹配…前面的内容

“re.findall(r’\d+(?!$)’ ,text)”

提取不带货币符号的数字

注意事项

  1. 非贪婪匹配优先:在HTML解析中,.*?比.*更安全,避免跨标签匹配
代码语言:javascript
复制
# 错误:贪婪匹配会匹配到最后一个</div>
re.search(r'<div>.*</div>', html)
# 正确:非贪婪匹配到第一个</div>
re.search(r'<div>.*?</div>', html)

2. 原始字符串r前缀:所有正则表达式推荐使用r’…'格式

代码语言:javascript
复制
# 正确
re.sub(r'<.*?>', '', html)
# 错误(反斜杠会被转义)
re.sub('<.*?>', '', html)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 具身小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用正则通配符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档