使用HtmlXPathSelector返回包含HTML实体的字符串

时间:2012-07-03 15:27:22

标签: python html json

我有一个我从网页上解析过的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返回那个确切的字符串?

1 个答案:

答案 0 :(得分:2)

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

以下是您要解码JSON的时间。然后在以后替换“坏报价”。