从转义的 html -> 到常规的 html? - Python

Posted

技术标签:

【中文标题】从转义的 html -> 到常规的 html? - Python【英文标题】:From escaped html -> to regular html? - Python 【发布时间】:2011-01-29 07:39:20 【问题描述】:

我使用 BeautifulSoup 处理通过 REST API 收集的 XML 文件。

响应包含 html 代码,但 BeautifulSoup 会转义所有 HTML 标记,因此可以很好地显示。

很遗憾,我需要 HTML 代码。


我将如何继续将转义的 HTML 转换为正确的标记?


非常感谢您的帮助!

【问题讨论】:

众多副本之一:***.com/questions/663058/html-entity-codes-to-text 【参考方案1】:

我想你想要来自 Python 标准库的xml.sax.saxutils.unescape。

例如:

>>> from xml.sax import saxutils as su
>>> s = '<foo>bar</foo>'
>>> su.unescape(s)
'<foo>bar</foo>'

【讨论】:

不幸的是它不能处理所有字符。例如,su.unescape('&amp;quot;') 不起作用。 您可以通过在字典中将它们指定为unescape 的第二个参数来转义其他字符。例如:su.unescape(s, '&amp;quot;':'"')【参考方案2】:

你可以试试urllib 模块吗?

它有一个方法unquote() 可能适合您的需要。

编辑:重新考虑,(以及更多阅读您的问题)您可能只想使用string.replace()

像这样:

string.replace('&lt;','<')
string.replace('&gt;','>')

【讨论】:

当 saxutils.unescape 为您完成所有替换步骤时,您为什么还要费心编写不同的替换步骤(针对 lt、gt、amp)?-) 另外,请记住:替换调用不会更改字符串,它会构建一个新字符串。给定的代码 sn-p 是一个缓慢的无操作!-)

以上是关于从转义的 html -> 到常规的 html? - Python的主要内容,如果未能解决你的问题,请参考以下文章

html 从描述HTML代码转义空间

如何转义 HTML 或取消转义 HTML?

Java 转义 HTML

php html_entity_decode HTML实体转义

Python代码试图将excel数据保存到数据库中 - 错误转义特殊字符

htmljavascripturl特殊字符的转义诠释及使用方法详解