1. Python正则匹配与官网数据爬取实战指南
在数据处理和网络爬虫领域,正则表达式(Regular Expression)就像是一把瑞士军刀,能够高效地从杂乱无章的文本中精准提取我们需要的信息。最近我在处理一个官网数据采集项目时,深刻体会到正则表达式与Python爬虫技术结合使用的强大威力。本文将分享如何利用Python的re模块进行高效正则匹配,并配合requests库实现官网数据的自动化采集。
提示:本文所有代码示例基于Python 3.8+环境,建议使用虚拟环境进行实践,避免包依赖冲突。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 正则表达式核心概念解析
2.1 基础元字符与匹配模式
正则表达式的强大之处在于其丰富的元字符系统。以下是最常用的元字符及其功能:
python复制import re
# 匹配数字
pattern = r'\d+'
text = "2023年最新数据"
result = re.findall(pattern, text) # 输出: ['2023']
# 匹配邮箱地址
email_pattern = r'[\w.-]+@[\w.-]+\.\w+'
emails = "联系: support@example.com, sales@company.org"
found_emails = re.findall(email_pattern, emails) # 输出: ['support@example.com', 'sales@company.org']
2.2 贪婪与非贪婪匹配
正则表达式默认采用贪婪匹配模式,这可能导致意外结果:
python复制# 贪婪匹配示例
html = "<div>内容1</div><div>内容2</div>"
greedy_pattern = r'<div>.*</div>'
print(re.findall(greedy_pattern, html))
# 输出: ['<div>内容1</div><div>内容2</div>']
# 非贪婪匹配
non_greedy = r'<div>.*?</div>'
print(re.findall(non_greedy, html))
# 输出: ['<div>内容1</div>', '<div>内容2</div>'
