Как я невыхожу из объектов HTML в строке в Python 3.1? [дубликат]

Этот вопрос уже имеет ответ здесь:

Я посмотрел все вокруг и только нашел решения для python 2.6 и ранее, НИЧТО о том, как сделать это в python 3. X. (у меня только есть доступ к полю Win7.)

Я должен быть в состоянии сделать это в 3,1 и предпочтительно без внешних библиотек. В настоящее время у меня есть установленный httplib2 и доступ к завихрению командной строки (это - то, как я получаю исходный код для страниц). К сожалению, завихрение не декодирует объекты HTML, насколько я знаю, я не мог найти, что команда декодировала его в документации.

ДА, я попытался заставить Красивый Суп работать, МНОГО РАЗ без успеха в 3. X. Если Вы могли бы предоставить ЯВНЫЕ инструкции относительно того, как заставить это работать в python 3 в среде MS Windows, я буду очень благодарен.

Так, чтобы быть ясным, я должен повернуть строки как это: Suzy & John в строку как это: "Suzy & John".

59
задан John Feminella 2 March 2010 в 02:54
поделиться

4 ответа

Можно использовать функцию 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')
163
ответ дан 24 November 2019 в 18:01
поделиться

Python 3.x также имеет html.entities

3
ответ дан 24 November 2019 в 18:01
поделиться

Я не уверен, встроенная это библиотека или нет, но похоже, что вам нужно и поддерживает 3.1.

От: http://docs.python.org/3.1/library/xml.sax.utils.html?highlight=html%20unescape

xml.sax.saxutils.unescape (данные, объекты = {}) Отменить экранирование символов '&', '<' и '>' в строке данных.

1
ответ дан 24 November 2019 в 18:01
поделиться

Для этой цели можно использовать xml.sax.saxutils.unescape . Этот модуль включен в стандартную библиотеку Python и может переноситься между Python 2.x и Python 3.x.

>>> import xml.sax.saxutils as saxutils
>>> saxutils.unescape("Suzy &amp; John")
'Suzy & John'
15
ответ дан 24 November 2019 в 18:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: