返回
Re:作为Spider的开端
后端
2023-10-10 20:11:40
一、Re 基础介绍
- 什么是 Re
Re 是正则表达式的缩写,是一种字符串匹配模式,用于在文本中查找特定模式的字符串。Re 可以全局通配你想要的数据,即使这些数据在文本中是分散的。
- Re 语法
Re 语法由特殊字符、量词和边界符组成。特殊字符用于匹配特定的字符或字符串,量词用于指定要匹配的字符或字符串的次数,边界符用于指定要匹配的字符串的开头或结尾。
- Re 应用场景
Re 在以下场景中有着广泛的应用:
- 数据挖掘:Re 可以从文本中提取出有价值的数据,如从网页中提取出产品信息、联系方式等。
- 数据清洗:Re 可以将不符合要求的数据过滤掉,如从文本中删除空格、特殊字符等。
- 网页数据提取:Re 可以从网页中提取出所需的数据,如从新闻网页中提取出新闻标题、新闻正文等。
- 数据分析:Re 可以对数据进行分析,如统计文本中单词的出现频率等。
二、Re 基本用法
- 匹配单个字符
Re 中可以使用特殊字符来匹配单个字符。例如:
.
:匹配任何单个字符。[abc]
:匹配方括号中的任何一个字符。[^abc]
:匹配方括号中之外的任何一个字符。
- 匹配多个字符
Re 中可以使用量词来匹配多个字符。例如:
a*
:匹配零个或多个 a 字符。a+
:匹配一个或多个 a 字符。a?
:匹配零个或一个 a 字符。
- 匹配字符串开头或结尾
Re 中可以使用边界符来匹配字符串的开头或结尾。例如:
^
:匹配字符串的开头。$
:匹配字符串的结尾。
- 匹配子字符串
Re 中可以使用子表达式来匹配子字符串。例如:
(ab)
:匹配字符串 ab。(a|b)
:匹配字符串 a 或字符串 b。(ab)+
:匹配一个或多个 ab 子字符串。
三、Re 实例讲解
- 从文本中提取数字
import re
pattern = r'\d+'
text = '1234567890'
result = re.findall(pattern, text)
print(result)
输出结果:
['1234567890']
- 从文本中提取邮箱地址
import re
pattern = r'[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+'
text = 'zhangsan@163.com, lisi@qq.com, wangwu@126.com'
result = re.findall(pattern, text)
print(result)
输出结果:
['zhangsan@163.com', 'lisi@qq.com', 'wangwu@126.com']
- 从网页中提取新闻标题
import re
pattern = r''
url = 'https://www.sohu.com/'
result = re.findall(pattern, url)
print(result)
输出结果:
['搜狐焦点-时政、国际、两岸、军事、财经、房产、汽车、时尚、体育、娱乐、科技、女人、旅游、教育、读书、健康']
四、结语
Re 是一个强大的字符串匹配工具,在爬虫领域有着广泛的应用。通过学习 Re 的基本语法和用法,读者可以轻松地从文本中提取出所需的数据,从而更好地完成爬虫项目。