1 Star 0 Fork 0

XieYeMing/python爬虫与自动化脚本

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
数据解析 re解析.py 2.28 KB
一键复制 编辑 原始数据 按行查看 历史
XieYeMing 提交于 2024-02-16 17:44 +08:00 . 练手脚本
import requests
import re # 正则模块主要用于匹配字符串
'''
具有代表性的四种解析方式 四种方式可以混用
有时数据返回是页面元素,可用一下方式解析获取数据
1. re解析 正则表达式解析,但不好写
2. bs4解析 老东西
3. xpath解析 语法简单速度快,主流
4. pyquery解析 一个模仿jQuery的模块
'''
# 正则表达式
'''
验证正则表达式的在线网站:https:/tool.oschina.net/regex
元字符详解: https://www.cnblogs.com/yugege/p/4821494.html
'''
# 查找所有被匹配的内容 第一个 参数是正则表达式,第二个参数是被匹配的字符串
result = re.findall('a', '123as354a')
if len(result):
print(result)
# 匹配字符串中的数字 在正则前面加个r取消反义
result = re.findall(r'\d+', '123assa23ssa')
print(result)
# 使用和上面一样但得到的结果是一个迭代器,需要遍历
# result = re.finditer(r'\d+', '123assa23ssa') # 返回的是一个迭代器
# for item in result: # 从迭代器拿取内容
# print(item.group()) # 从匹配到的结果中拿出数据
# 预加载写好的正则就不用像上面那样写,可以直接使用
# obj = re.compile(r"\d+")
# obj.findall()
# 搜索 只会搜索到第一次匹配到的内容,后面再有内容也不会被匹配
# result = obj.search('我今年12岁,缺德小学3年2班')
# print(result.group())
# 搜索 从字符串开头开始匹配类似正则加了个^
# result = re.match(r'\d+', '我今年12岁,缺德小学3年2班')
# print(result)
# 根据正则表达式提取数据
# obj = """
# <div><span class='10010'>呆呆的小胖鱼</span></div>
# <div><span class='10086'>傻傻的小胖鱼</span></div>
# """
# 在要提取数据的地方写正则 比如这里要拿 class里的值和span里的内容
# result = re.compile(r"<span class='(\d+)'>(.*?)</span>")
# date = result.findall(obj)
# print(date)
# 得出的结果:[('10010', '呆呆的小胖鱼'), ('10086', '傻傻的小胖鱼')] 这样不方便取出内容 所以可以加一些命名写法如下
# result = re.compile(r"<span class='(?P<id>\d+)'>(?P<name>.*?)</span>")
#
# date = result.finditer(obj)
#
# for i in date:
# id = i.group("id")
# print(id)
# name = i.group("name")
# print(name)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/xieyeming/machine-study.git
git@gitee.com:xieyeming/machine-study.git
xieyeming
machine-study
python爬虫与自动化脚本
master

搜索帮助