Я пытаюсь извлечь текст и HTML из веб-сайта со скандинавскими символами, используя Beautiful Soup и Python 2.6.5.
html = open('page.html', 'r').read()
soup = BeautifulSoup(html)
descriptions = soup.findAll(attrs={'class' : 'description' })
for i in descriptions:
description_html = i.a.__str__()
description_text = i.a.text.__str__()
description_html = description_html.replace("/subdir/", "http://www.domain.com/subdir/")
print description_html
Однако при выполнении программы происходит сбой со следующим сообщением об ошибке:
Traceback (most recent call last):
File "test01.py", line 40, in <module>
description_text = i.a.text.__str__()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 19: ordinal not in range(128)
Кажется, что входная страница закодирована в ISO-8859-1, если это поможет.Я попытался установить правильную исходную кодировку с помощью BeautifulSoup(html, fromEncoding="latin-1")
, но это тоже не помогло.
Это 2011 год, и я борюсь с тривиальными проблемами кодировки символов, я думаю, что есть действительно простое решение всего этого.