Этот вопрос уже имеет ответ здесь:
Я посмотрел все вокруг и только нашел решения для python 2.6 и ранее, НИЧТО о том, как сделать это в python 3. X. (у меня только есть доступ к полю Win7.)
Я должен быть в состоянии сделать это в 3,1 и предпочтительно без внешних библиотек. В настоящее время у меня есть установленный httplib2 и доступ к завихрению командной строки (это - то, как я получаю исходный код для страниц). К сожалению, завихрение не декодирует объекты HTML, насколько я знаю, я не мог найти, что команда декодировала его в документации.
ДА, я попытался заставить Красивый Суп работать, МНОГО РАЗ без успеха в 3. X. Если Вы могли бы предоставить ЯВНЫЕ инструкции относительно того, как заставить это работать в python 3 в среде MS Windows, я буду очень благодарен.
Так, чтобы быть ясным, я должен повернуть строки как это: Suzy & John
в строку как это: "Suzy & John".
Можно использовать функцию html.unescape:
В Python3.4+ (спасибо J.F. Sebastian за обновление):
import html
html.unescape('Suzy & John')
# 'Suzy & John'
html.unescape('"')
# '"'
В Python3. 3 или старше:
import html.parser
html.parser.HTMLParser().unescape('Suzy & John')
В Python2:
import HTMLParser
HTMLParser.HTMLParser().unescape('Suzy & John')
Я не уверен, встроенная это библиотека или нет, но похоже, что вам нужно и поддерживает 3.1.
От: http://docs.python.org/3.1/library/xml.sax.utils.html?highlight=html%20unescape
xml.sax.saxutils.unescape (данные, объекты = {}) Отменить экранирование символов '&', '<' и '>' в строке данных.
Для этой цели можно использовать xml.sax.saxutils.unescape
. Этот модуль включен в стандартную библиотеку Python и может переноситься между Python 2.x и Python 3.x.
>>> import xml.sax.saxutils as saxutils
>>> saxutils.unescape("Suzy & John")
'Suzy & John'