通过Beautiful Soup解析带有unicodes的HTML

时间:2011-10-14 14:43:08

标签: python regex html-parsing beautifulsoup

如果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)

1 个答案:

答案 0 :(得分:1)

问题不在于解析文件。使用您在对Marco的评论中提供的链接,soup = BeautifulSoup(urllib.urlopen(your_link))正常工作。

当您尝试将解析后的数据打印到控制台时遇到问题,因为它现在已经转换为Unicode,并且Python会尝试将其输出为ASCII,除非您另有说明。因此,在您的控制台中执行print soup而不仅仅是soup