HTML 在 Python 中解码

HTML Decoding in Python

我正在编写一个 python 脚本来大量替换 HTML 文件中的链接(实际上是图像和脚本源);我正在使用 lxml。有一个问题,html 文件是测验,它们有这样打包的数据(这里也有一些西里尔字母):

<input class="question_data" value="{&quot;text&quot;:&quot;&lt;p&gt;[1] је наука која се бави чувањем, обрадом и преносом информација помоћу рачунара.&lt;/p&gt;&quot;,&quot;fields&quot;:[{&quot;id&quot;:&quot;1&quot;,&quot;type&quot;:&quot;fill&quot;,&quot;element&quot;:{&quot;sirina&quot;:&quot;103&quot;,&quot;maxDuzina&quot;:&quot;12&quot;,&quot;odgovor&quot;:[&quot;Информатика&quot;]}}]}" name="question:1:data" id="id3a1"/>

当我尝试使用 python 打印出此数据时:

print "OLD_DATA:", data

它只是打印出错误 "UnicodeEncodeError: character maps to undefined"。这些元素还有很多。我的目标是更改输入值部分的图像链接,但如果我不知道如何打印此数据(或如何将其写入文件),我将无法更改链接。 Python 如何处理(解释)这个?请帮忙。谢谢!!! :)

您 运行 遇到了我过去多次遇到的同样问题。该错误几乎总是意味着您正在使用的控制台环境无法显示它试图打印的字符。可能值得尝试记录到文件,然后在可以显示字符的编辑器中打开日志。

如果您真的希望能够在您的控制台上看到它,可能值得编写一个函数来筛选您正在打印的字符串中是否存在不可打印的字符

我还发现了一些可能对您的工作有所帮助的其他 Whosebug 帖子:

How do I get Cyrillic in the output, Python?

我也会推荐这篇文章和python手动输入:

https://docs.python.org/2/howto/unicode.html

http://www.joelonsoftware.com/articles/Unicode.html