Проблема с разбором HTML с помощью unicodes через Beautiful Soup - PullRequest
1 голос
/ 14 октября 2011

Beautiful Soup, похоже, не работает должным образом (для меня), если HTML содержит юникоды, ascii которых превышает 128. Какое подходящее декодирование-кодирование следует использовать для этого?

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)

1 Ответ

1 голос
/ 14 октября 2011

Проблема не в разборе файла.Используя ссылку, которую вы дали в своем комментарии к Марко, выполнение soup = BeautifulSoup(urllib.urlopen(your_link)) работает абсолютно нормально.

Только когда вы пытаетесь распечатать эти проанализированные данные на консоли, у вас возникает проблема, потому что теперь они преобразованы вUnicode и Python попытаются вывести его как ASCII, если вы не укажете обратное.Так что print soup вместо soup в вашей консоли будет работать.

...