Python BeautifulSoup解码HTML实体
问题描述:
file_txt = urllib.request.urlopen("ftp://ftp.sec.gov/edgar/data/1220985/0000930413-12-003922.txt")
file = file_txt.read().decode('cp1252')
soup = BeautifulSoup(file)
print(soup.prettify())
#UnicodeEncodeError: 'charmap' codec can't encode character '\x92' in position 11900: character maps to <undefined>
我检查了txt文件。当它在浏览器中显示时,\x92
实际上显示为'
的HTML实体’
。我不知道为什么在使用与我的浏览器相同的编码方案(cp1252
)对其进行解码之后出现错误。Python BeautifulSoup解码HTML实体
答
美丽的汤姆读取文档,但是当您尝试将其打印到控制台时会出现错误。这通常表示您的控制台无法显示某个字符。 This page on the Python wiki may help.
+0
我也尝试将输出写入文件。与UnicodeError相同的问题 – zsljulius 2012-07-12 20:55:21
感谢您的回复。我正在使用Python 3,据说它完全支持unicode。您推荐的软件包对于Python 3来说有点旧。 – zsljulius 2012-07-12 20:35:48
@zsljulius:Python3有更好的Unicode支持并不意味着他具有嗅探编码的特性,即“'chardet''软件包,恕我直言。我可以问,你试过吗? – mouad 2012-07-12 21:26:34