HTML-коды объектов в текст [дубликаты]

PEP-8 является официальным стандартом кодирования питона. Он содержит раздел о docstrings, который ссылается на PEP-257 - полную спецификацию для docstrings.

13
задан tghw 19 March 2009 в 17:43
поделиться

4 ответа

HTMLParser имеет функциональность в стандартной библиотеке. Это, к сожалению, не документировано:

(документы Python2 )

>>> import HTMLParser
>>> h= HTMLParser.HTMLParser()
>>> h.unescape('alpha < β')
u'alpha < \u03b2'

(Документы Python 3 )

>>> import html.parser
>>> h = html.parser.HTMLParser()
>>> h.unescape('alpha &lt; &beta;')
'alpha < \u03b2'

htmlentitydefs документируется, но требует, чтобы Вы сделали большую работу сами.

, Если Вам только нужен XML, предопределил объекты (лейтенант, gt, усилитель, кавычка, apos), Вы могли использовать minidom для парсинга их. Если Вам только нужны предопределенные объекты и никакие ссылки цифрового символа, Вы могли бы даже просто использовать простую строковую замену для скорости.

43
ответ дан StefanJCollier 20 March 2009 в 03:43
поделиться

Нет ничего встроенного в Python stdlib для невыхода из HTML, но существует короткий сценарий, который можно адаптировать в соответствии с потребностями в http://www.w3.org/QA/2008/04/unescape-html-entities-python .html.

1
ответ дан Benjamin Pollack 20 March 2009 в 03:43
поделиться
  • 1
    Право, I' m просто раньше делал это, потому что C++ бросит ошибки если Вы don' t. – AndiDog 21 February 2010 в 19:01

Используйте модуль htmlentitydefs . Этот мой старый код, это работало, но я уверен, что там является более чистым и больше pythonic способа сделать это:

e2c = dict(('&%s;'%k,eval("u'\\u%04x'"%v)) for k, v in htmlentitydefs.name2codepoint.items())
1
ответ дан vartec 20 March 2009 в 03:43
поделиться
  • 1
    printf () операторы может быть полезным, но they' ре не хорошая привычка войти. GDB действительно не, что трудно для изучения и дает Вам печать и переменный самоанализ бесплатно все обернутые в одном небольшом пакете. И Вы don' t даже должны решить, куда поместить printf () s заранее. – semisight 29 November 2011 в 08:09

Я забыл отмечать его сначала, но я использую BeautifulSoup.

Рытье вокруг в документации, я нашел:

soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)

делает это точно, как я надеялся.

12
ответ дан tghw 20 March 2009 в 03:43
поделиться
  • 1
    Вы don' t должен бросить указатель, возвращенный malloc. – Andreas Grech 21 February 2010 в 18:06
Другие вопросы по тегам:

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