Python爬虫如何提取转义HTML并解码供BeautifulSoup解析
Python 爬虫Unicode转义HTML提取解码方案
前置依赖
你需要提前安装所需第三方库:
pip install requests beautifulsoup4
核心实现步骤
- 首先解析接口返回的JSON数据,得到Python字典结构
- 按层级提取
d.ReturnData.script字段的内容 - 对提取的内容做Unicode转义解码(多数场景JSON解析时会自动完成,仅双重转义场景需额外处理)
- 将解码后的标准HTML传入BeautifulSoup解析
完整代码示例
import json import requests from bs4 import BeautifulSoup # 发送请求获取接口响应 response = requests.get("替换为你的目标接口地址") # 解析响应为JSON字典 result = response.json() # 按层级提取目标字段,可根据需要增加异常捕获逻辑 raw_html = result["d"]["ReturnData"]["script"] # 可选:仅当raw_html仍包含\u开头的转义序列时执行下面的解码代码 # 方案1:处理双重转义 # decoded_html = json.loads(f'"{raw_html}"') # 方案2:通用转义解码 # decoded_html = raw_html.encode().decode("unicode_escape") # 直接传入BeautifulSoup解析 soup = BeautifulSoup(raw_html, "html.parser") # 后续可正常使用soup的各种DOM查询方法 # 示例:打印页面所有p标签 print(soup.find_all("p"))
常见问题说明
- 正常符合JSON规范的响应,调用
response.json()时会自动把Unicode转义序列解码为可读字符,不需要额外处理转义逻辑 - 如果接口对HTML内容做了两次转义,才需要用到上面示例里的可选解码步骤
内容的提问来源于stack exchange,提问作者jerry
相关产品推荐
相关产品推荐

