BeautifulSoup不需要替换html实体

时间:2013-04-05 17:42:14

标签: html utf-8 python-2.7 beautifulsoup html-entities

我有一些包含mml的html,我使用MathType从Word文档生成。我有一个python脚本使用BeautifulSoup来美化它,但问题是它需要∠之类的东西并将其转换为实际的字节序列0xE2 0x88 0xA0,即∠符号。这是一个问题,因为0xE2 0x88 0xA0在浏览器中不会显示为∠。而是浏览器将其解释为一系列拉丁字符。所有数学实体都会发生这种情况,例如Δ∠ - + ......等等。

我查看了BeautifulSoup文档,我可以看到如何将实体转换为字节序列,但我没有使用该命令;我正在使用的是美化()。我没有在BeautifulSoup文档中看到一种不将实体转换为字节序列的方法。

有没有人知道BeautifulSoup中是否有设置告诉它不要将实体更改为字节序列?我希望如此,因为在美化运行之后必须撤消损害似乎有点愚蠢:)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我错过了BeautifulSoup文档的一部分。默认输出格式化程序执行所描述的行为:它们将html实体转换为unicode字符。因此,可以使用不同的输出格式化程序更改此行为。 (D'OH)

“您可以通过为prettify(),encode()或decode()....提供formatter参数的值来改变这种行为。”

因此,如果我传入formatter="html"美丽的汤将尽可能将Unicode字符转换为HTML实体!好极了!谢谢美丽的汤!

(他们有很棒的文件。可惜我没有尽快阅读整篇文章。:$)