BeautifulSoup UnicodeEncodeError

时间:2016-03-16 07:43:25

标签: python-3.x encoding beautifulsoup

我正在尝试解析保存到计算机的HTML page(Windows 10)

YES

它应该打印第一列中的所有日语单词,但在from bs4 import BeautifulSoup with open("res/JLPT N5 vocab list.html", "r", encoding="utf8") as f: soup = BeautifulSoup(f, "html.parser") tables = soup.find_all("table") sectable= tables[1] for tr in sectable.contents[1:]: if tr.name == "tr": try: print(tr.td.a.get_text()) except(AttributeError): continue print(tr.td.a.get_text())处提出错误,那么,我该如何解决此错误?

1 个答案:

答案 0 :(得分:0)

最后,我根据Beautiful Soup Documentatioin's Miscellaneous.

解决了这个问题
  

UnicodeEncodeError:'charmap'编解码器不能对位置栏中的字符u'\ xfoo'进行编码(或者几乎任何其他UnicodeEncodeError) - 这对Beautiful Soup来说不是问题。这个问题出现在两个主要情况中。首先,当您尝试打印控制台不知道如何显示的Unicode字符时。 (请参阅Python wiki上的此页面以获取帮助。)其次,当您写入文件并传入默认编码不支持的Unicode字符时。在这种情况下,最简单的解决方案是使用u.encode(“utf8”)将Unicode字符串显式编码为UTF-8。

在我的情况下,因为我试图打印一个我的控制台不知道如何显示它的Unicode字符 因此,我enabled TrueType font for console,将系统区域设置更改为日语(以便更改控制台编码并可以选择支持日语的控制台字体),然后将控制台字体更改为MSコシック(此字体在我更改系统区域设置后出现)。
如果我想将其写入文件,我只需打开文件并指定编码为UTF-8。