Замените html-объекты соответствующими символами utf-8 в Python 2.6.

У меня есть такой html-текст:

<xml ... >

и я хочу преобразовать его во что-нибудь читабельное:

<xml ...>

Любой простой (и быстрый) способ сделать это на Python?


person Alexandru    schedule 08.04.2009    source источник
comment
Я думаю, что этот вопрос дублирует это: stackoverflow.com/questions/57708/   -  person Fred Larson    schedule 08.04.2009
comment
Возможный дубликат декодировать объекты HTML в строке Python?   -  person csl    schedule 22.09.2016
comment
Лучший подход здесь stackoverflow.com/questions/2360598/   -  person fmalina    schedule 06.11.2019


Ответы (3)


Python 2.7

Официальная документация для HTMLParser: Python 2.7

>>> import HTMLParser
>>> pars = HTMLParser.HTMLParser()
>>> pars.unescape('&copy; &euro;')
u'\xa9 \u20ac'
>>> print _
© €

Python 3

Официальная документация для HTMLParser: Python 3

>>> from html.parser import HTMLParser
>>> pars = HTMLParser()
>>> pars.unescape('&copy; &euro;')
© €
person vartec    schedule 08.04.2009
comment
unescape - это просто внутренняя функция HTMLParser (и она не задокументирована в вашей ссылке). однако я мог использовать реализацию. В 10 раз больше - person Alexandru; 08.04.2009
comment
@brtzsnr: правда, это недокументировано. Не думайте, что это внутреннее, в конце концов, имя unescape, а не _unescape или __unescape. - person vartec; 08.04.2009

Есть функция здесь, которая выполняет это, как указано в сообщении - указал Фред. Скопировано здесь, чтобы упростить задачу.

Благодарим Фреда Ларсона за ссылку на другой вопрос о SO. Благодарим dF за размещение ссылки.

person Benson    schedule 08.04.2009

Современный подход Python 3:

>>> import html
>>> html.unescape('&copy; &euro;')
© €

https://docs.python.org/3/library/html.html

person fmalina    schedule 06.11.2019