【Python网络爬虫】python爬虫用正则表达式进行数据清洗与处理

🔗 运行环境:PYTHON

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

#### 防伪水印——左手の明天 ####

💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗

💗今天更新系列【python网络爬虫】——python网络爬虫入门💗

📆  最近更新:2024 年 04月 29 日,左手の明天的第 328 篇原创博客

📚 更新于专栏:python网络爬虫

#### 防伪水印——左手の明天 ####


在Python网络爬虫的数据清洗与处理过程中,正则表达式是一个非常强大的工具,它可以帮助我们从复杂的文本数据中提取出所需的信息。在Python中,re模块提供了对正则表达式的支持。

目录

导入re模块

查找匹配项

替换文本

提取多个匹配项

分割文本

示例:从HTML中提取文本

注意事项


下面是如何在Python网络爬虫数据清洗与处理中使用正则表达式的示例:

导入re模块

import re

查找匹配项

使用re.search()re.match()函数查找文本中的匹配项。

text = "The price is 100 dollars"
match = re.search(r'\d+', text)  # 查找数字
if match:
    print(match.group())  # 输出匹配到的数字

替换文本

使用re.sub()函数替换文本中的匹配项。

text = "Hello, World!"
cleaned_text = re.sub(r'[^a-zA-Z\s]', '', text)  # 去除非字母和非空格字符
print(cleaned_text)  # 输出:Hello World

提取多个匹配项

使用re.findall()函数提取文本中所有匹配项。

text = "Prices are 100, 200, 300 dollars"
prices = re.findall(r'\d+', text)  # 提取所有数字
print(prices)  # 输出:['100', '200', '300']

分割文本

使用re.split()函数根据正则表达式分割文本。

text = "apple, banana, cherry"
fruits = re.split(r', ', text)  # 根据逗号和空格分割文本
print(fruits)  # 输出:['apple', 'banana', 'cherry']

示例:从HTML中提取文本

假设我们有一个HTML字符串,并希望提取其中的所有链接:

import re
 
html = '''
<html>
<head></head>
<body>
    <a href="http://example.com/link1">Link 1</a>
    <a href="http://example.com/link2">Link 2</a>
    <a href="http://example.com/link3">Link 3</a>
</body>
</html>
'''
 
# 使用正则表达式提取href属性中的链接
links = re.findall(r'<a href="([^"]+)">', html)
 
for link in links:
    print(link)

这个例子中,正则表达式<a href="([^"]+)">会匹配<a href="...">...</a>格式的HTML链接,其中([^"]+)是一个捕获组,用于提取href属性值。

注意事项

  • 正则表达式需要根据具体的文本结构和内容进行编写。
  • 正则表达式可以非常复杂,因此建议在编写复杂的正则表达式之前先进行充分的学习和实践。
  • 在处理大量数据或复杂的文本结构时,可能需要使用更高级的HTML或XML解析库,如BeautifulSoup或lxml。

总之,正则表达式在Python网络爬虫的数据清洗与处理中是一个非常重要的工具,它们可以帮助我们快速有效地从文本数据中提取出所需的信息。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
Python 爬虫中,正则表达式是非常常用的技术,可以帮助我们从网页中提取出需要的信息。下面是一些常用的正则表达式符号和方法: 1. ".":匹配任意单个字符,除了换行符。 2. "^":匹配字符串的开始位置。 3. "$":匹配字符串的结束位置。 4. "*":匹配前一个字符出现 0 次或多次。 5. "+":匹配前一个字符出现 1 次或多次。 6. "?":匹配前一个字符出现 0 次或 1 次。 7. "{m}":匹配前一个字符出现 m 次。 8. "{m,n}":匹配前一个字符出现 m 到 n 次。 9. "(...)":分组匹配,匹配括号内的表达式。 10. "[...]":匹配括号内的任意一个字符。 11. "[^...]":匹配不在括号内的任意一个字符。 12. "\d":匹配数字,等同于 [0-9]。 13. "\D":匹配非数字,等同于 [^0-9]。 14. "\s":匹配空白字符,包括空格、制表符、换行符等。 15. "\S":匹配非空白字符。 16. "\w":匹配单词字符,包括字母、数字、下划线。 17. "\W":匹配非单词字符。 在 Python 中,使用 re 模块进行正则表达式的匹配。常用的方法包括: 1. re.compile(pattern):将正则表达式编译成一个对象,提高匹配效率。 2. re.search(pattern, string):在字符串中搜索匹配正则表达式的第一个位置。 3. re.findall(pattern, string):在字符串中搜索匹配正则表达式的所有位置,并返回一个列表。 4. re.sub(pattern, repl, string):将字符串中所有匹配正则表达式的字符替换为指定的字符串。 以上是一些常用的正则表达式符号和方法,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左手の明天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值