如果 HTML 包含 ascii 超过 128 的 unicode,Beautiful Soup 似乎无法正常工作(对我来说)。为此应使用什么合适的解码编码?
raw = open('index.html').read()<br/>
BeautifulSoup.BeautifulSoup(raw)
错误
...stacktrace...<br/>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 8094: ordinal not in range(128)
最佳答案
问题不在于解析文件。使用您在给 Marco 的评论中提供的链接,执行 soup = BeautifulSoup(urllib.urlopen(your_link))
效果绝对没问题。
当您尝试将解析后的数据打印到控制台时,就会遇到问题,因为它现在已转换为 Unicode,并且 Python 会尝试将其输出为 ASCII,除非您另有说明。因此,在控制台中执行 print soup
而不仅仅是 soup
会起作用。
关于python - 通过 Beautiful Soup 解析带有 unicodes 的 HTML 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769322/