2011-10-14 61 views
1

美丽的汤似乎无法正常工作(对我来说),如果HTML包含Unicode的ASCII超过128.什么合适的解码编码应该用于此?通过美丽的汤解析HTML与Unicode的问题

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

的问题不是解析文件。使用你给Marco的评论中给出的链接,做soup = BeautifulSoup(urllib.urlopen(your_link))工作绝对没问题。

只是当您尝试将解析的数据打印到控制台时出现问题,因为它现在已转换为Unicode,并且Python会尝试将其输出为ASCII,除非您另行说明。所以在你的控制台中这样做print soup而不仅仅是soup将工作。

+0

如果您不能使用** print **语句,您将如何解决此问题? (在这里看到更多:http://stackoverflow.com/questions/7769745/python-convert-and-save-unicode-string-to-a-list) –

+0

你不需要,这是整个点。当您在控制台中输出时,这只是一个问题。 –