如何从网页脚本中安全提取并解析嵌入的 JSON 数据-Python教程

本文介绍如何从 html 页面的 `

在现代动态网页中,许多网站(尤其是使用前端框架渲染的站点)会将结构化数据(如新闻列表、产品信息)以 JavaScript 对象字面量的形式内联在

✅ 正确思路:精准提取 + 安全转换

核心原则是 不全局替换字符串(如 text.replace(‘null’, ‘None’)),因为 null 可能出现在 URL、文件名或正文内容中(如 “link”: “/path/to/null-report.pdf”),误替换将破坏数据。应采用「定位 → 截取 → 合法化」三步法:

  1. 定位目标 :用 BeautifulSoup 查找包含 App = 的 script 标签;
  2. 精准截取 JSON 片段:从 App = 后开始,提取首个完整 {…} 对象(需处理嵌套大括号);
  3. 转换为标准 JSON:将 JS 特有语法(null, true, false)映射为 JSON 兼容格式(null → null,注意:JSON 中 null 写法与 JS 一致,无需改为 None!⚠️关键纠正)。

? 重要澄清:JSON 规范本身支持 null、true、false(小写,无引号),与 Python 的 None/True/False 是不同语言的表示。json.loads() 要求输入是 字符串形式的标准 JSON,因此只需确保提取的字符串中:所有键和字符串值均用双引号包裹(JS 允许单引号或无引号键,JSON 不允许);null/true/false 已是合法 JSON 字面量,无需替换为 None/True/False(那是 Python 对象,不是 JSON 字符串);无 JS 注释、函数、变量声明等非法 JSON 内容。

实际网页中,App = {…}; 的 {…} 部分通常已是合法 JSON(键名被引号包裹,字符串值也带引号),唯一干扰是末尾的分号 ; 和可能的后续代码。因此,更健壮的提取方式是:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 如何从网页脚本中安全提取并解析嵌入的 JSON 数据-Python教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4008905+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4008905+
  • 本周更新: 0+
  • 最后更新: 2026-03-16