Преобразование объектов XML/HTML в строку Unicode в Python
В Python есть модуль htmlentitydefs, но html5 он не включает функцию для divs отмены экранирования объектов html-head HTML.
У разработчика Python pythonic Фредрика Лунда (автор elementtree, среди python прочего) есть такая функция html5 on his website, которая работает с десятичными, шестнадцатеричными divs и именованными сущностями:
import re, htmlentitydefs
##
# Removes HTML or XML character references and entities from a text string.
#
# @param text The HTML (or XML) source text.
# @return The plain text, as a Unicode string, if necessary.
def unescape(text):
def fixup(m):
text = m.group(0)
if text[:2] == "":
# character reference
try:
if text[:3] == "":
return unichr(int(text[3:-1], 16))
else:
return unichr(int(text[2:-1]))
except ValueError:
pass
else:
# named entity
try:
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
except KeyError:
pass
return text # leave as is
return re.sub("?\w+;", fixup, text)
python
html
entities
2021-12-04T11:57:20+00:00
2022-09-24T06:09:41+00:00
runeseeker
Вопросы с похожей тематикой, как у вопроса:
Преобразование объектов XML/HTML в строку Unicode в Python
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.