HTMLParser.HTMLParser().unescape() 不起作用

新手上路,请多包涵

我想将 HTML 实体转换回其人类可读格式,例如 '£' 转换为“£”, '°' 转换为“°”等。

我已经阅读了几篇关于这个问题的帖子

使用 Python 2.x 将 html 源内容转换为可读格式

解码 Python 字符串中的 HTML 实体?

在 Python 中将 XML/HTML 实体转换为 Unicode 字符串

根据他们的说法,我选择使用未记录的函数 unescape(),但它对我不起作用……

我的代码示例如下:

 import HTMLParser

htmlParser = HTMLParser.HTMLParser()
decoded = htmlParser.unescape('© 2013')
print decoded

当我运行这个 python 脚本时,输出仍然是:

 © 2013

代替

© 2013

我正在使用 Python 2.X,在 Windows 7 和 Cygwin 控制台上工作。我用谷歌搜索并没有发现任何类似的问题..任何人都可以帮我解决这个问题吗?

原文由 D.Q. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 889
1 个回答

显然 HTMLParser.unescapePython 2.6 之前 有点原始

蟒蛇2.5:

 >>> import HTMLParser
>>> HTMLParser.HTMLParser().unescape('©')
'©'

Python 2.62.7:

 >>> import HTMLParser
>>> HTMLParser.HTMLParser().unescape('©')
u'\xa9'

更新:Python 3.4+:

 >>> import html
>>> html.unescape('©')
'©'

查看 2.5 实施2.6 实施 /2.7 实施

原文由 DrMeers 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏