本文介绍如何从 html 页面的 `
在现代前端渲染的网站中(尤其是使用 Vue、React 或服务端预渲染的站点),关键数据常以 JavaScript 对象形式直接注入 HTML 的
直接对原始字符串做 str.replace(“null”, “None”) 或 str.replace(“false”, “False”) 极其危险:一旦新闻标题中包含 “null”(如 “Version null release”)或 “false”(如 “is false positive”),替换将污染真实业务数据,导致解析失败或逻辑错误。因此,必须采用语义化、上下文感知的提取策略,而非文本层面的模糊替换。
✅ 推荐方案:定位 + 截取 + 安全 JSON 化
核心思路分三步:
- 定位目标 :用 BeautifulSoup 精确查找含 App = 的脚本;
- 提取纯对象字面量内容:跳过 App = 前缀,截取至第一个完整闭合的 }(需处理嵌套);
- 转为标准 JSON 并加载:将 JS 风格字面量(true/false/null)安全映射为 JSON 兼容格式。
以下为健壮、可复用的实现: