如果HTML包含ascii超过128的unicodes,那么美丽的汤似乎无法正常工作(对我而言)。应该使用哪种合适的解码编码?
raw = open('index.html').read()
BeautifulSoup.BeautifulSoup(raw)
错误
...stacktrace...
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 8094: ordinal not in range(128)
答案 0 :(得分:1)
问题不在于解析文件。使用您在对Marco的评论中提供的链接,soup = BeautifulSoup(urllib.urlopen(your_link))
正常工作。
当您尝试将解析后的数据打印到控制台时遇到问题,因为它现在已经转换为Unicode,并且Python会尝试将其输出为ASCII,除非您另有说明。因此,在您的控制台中执行print soup
而不仅仅是soup
。