【问题标题】:Use HtmlXPathSelector to return string containing HTML entities使用 HtmlXPathSelector 返回包​​含 HTML 实体的字符串
【发布时间】:2012-07-03 15:27:21
【问题描述】:

我有一个从网页解析的 JSON 字符串,我正在尝试使用 json.loads() 将其转换为 Python 字典。但是,JSON 字符串中的某些值包含双引号,例如

'{"title": "The "Star Wars Kid": Where is he now?"}'

显然这不是一个正确的 JSON 字符串,json.loads() 抱怨。使用类似string.replace('"', '\\"') 的东西也不起作用,因为这是一个单一的字符串,这样做会影响正确的双引号和坏的双引号。

顺便说一句,这不会在抓取时导致 HtmlXPathSelector 错误,因为在网页上,错误的引号是这样编码的

'{"title": "The "Star Wars Kid": Where is he now?"}'

如何使用json.loads() 正确解析此字符串?

编辑:我知道在编码的引号被解码之前解析字符串会很简单(如第二个示例所示),所以我想我真正要问的是如何从 python HtmlXPathSelector 获取这种类型的静态编码结果。

如果我正在抓取的 HTML 文档包含此字符串

'{"title": "The "Star Wars Kid": Where Is He Now?"}'

如何让 HtmlXPathSelector 在不解码编码引号的情况下返回确切的字符串?

【问题讨论】:

    标签: python html json


    【解决方案1】:
    {"title": "The "Star Wars Kid": Where is he now?"}
    

    这是您想要解码 JSON 的时候。然后稍后替换“坏引号”。

    【讨论】:

    • 谢谢,有道理。您能推荐一种从 HtmlXPathSelector 获取此预解码版本的方法吗?
    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 2011-11-27
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多