0
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实际上显示&#146'. 我不确定为什么在使用与cp1252浏览器相同的编码方案 ( ) 对其进行解码后会出现错误。

4

2 回答 2

2

通常BeautifulSoup擅长检测网页使用的编码,如果它可用,它通过使用chardet库来做到这一点。所以我会建议你安装chardet包并让BeautifulSoup找出编码。

pip install chardet (or easy_install chardet)

希望这会有所帮助。

于 2012-07-12T20:26:15.443 回答
1

Beautiful Soup 会读取文档,但是当您尝试将其打印到控制台时会出现错误。这通常表明您的控制台无法显示某个字符。Python wiki 上的这个页面可能会有所帮助。

于 2012-07-12T20:43:51.410 回答