Я думаю, что проблема, с которой вы столкнулись выше, заключается в том, что ваш текст уже находится в формате Unicode, и вы пытаетесь преобразовать его в Unicode во второй раз, что вызывает вашу ошибку.
Приведенный ниже код работал для меня и дал результаты, показанные ниже.
from bs4 import BeautifulSoup
text = "Albert Einstein’s Theory of Relativity: Should We Worry…?"
parsed_html = BeautifulSoup(text)
print 'Original Type: ' + type(text)
print 'Original Text: ' + text
print 'Parsed Type: ' + type(parsed_html.text)
print 'Parsed Text: ' + parsed_html.text
Вывод:
Original Type: <type 'str'>
Original Text: Albert Einstein’s Theory of Relativity: Should We Worry…?
Parsed Type: <type 'unicode'>
Parsed Text: Albert Einstein’s Theory of Relativity: Should We Worry…?
Использование BeautifulSoup4 версии 4.7.1
pip install bs4
blockquote>
Оказывается, причина, по которой HTMLEntitiesToUnicode()
не работал для меня, заключалась в том, что я читал данные из файла .json, в который были записаны данные, без указания того, что они должны быть сохранены в utf-8
. Исправление и последующее использование HTMLEntititesToUnicode()
, как описано выше, работало нормально.