2011-10-14 91 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

你不需要,這是整個點。當您在控制檯中輸出時,這只是一個問題。 –