Python 清理HTML并保留自定义标记

Python 清理HTML并保留自定义标记,python,xml,xml-parsing,nltk,tidy,Python,Xml,Xml Parsing,Nltk,Tidy,我有一根像下面这样的线 <GPE>LUSAKA</GPE> (<ORG>AP</ORG>) -- X&Y Ltd. &amp; M.K. Ltd will be merged. 输出为 LUSAKA (AP) -- X&amp;Y Ltd. &amp; M.K. Ltd will be merged. 来自lxml导入etree的>> >>>tree=etree.fromstring('卢萨卡(美联社)--X&Y

我有一根像下面这样的线

<GPE>LUSAKA</GPE> (<ORG>AP</ORG>) -- X&Y Ltd. &amp; M.K. Ltd will be merged.
输出为

LUSAKA (AP) -- X&amp;Y Ltd. &amp; M.K. Ltd will be merged.
来自lxml导入etree的
>>
>>>tree=etree.fromstring('卢萨卡(美联社)--X&Y有限公司和M.K.有限公司将被合并',etree.HTMLParser())
>>>etree.tostring(树)
卢萨卡(美联社)——X&;Y有限公司及;M.K.有限公司将被合并
>>>xpath(“//gpe/text()”)
[“卢萨卡”]

Wow!真令人印象深刻。我不想问这样的问题。顺便说一句,有没有办法删除
标签?我的意思是有什么选择吗?我可以解析。我需要确保它只添加和标记,而不添加其他内容。我认为可以安全地假设,应该进行检查。顺便说一句,我认为beautifulsoup也可以做到这一点,就个人而言,我更喜欢lxml而不是其他的。。。
options = {
    'wrap': 0,
    'indent': 0,
    'output-xhtml': 1,
    'numeric-entities': 1
}
html, warnings = tidylib.tidy_fragment(data, options)
LUSAKA (AP) -- X&amp;Y Ltd. &amp; M.K. Ltd will be merged.
>>> from lxml import etree
>>> tree = etree.fromstring('<GPE>LUSAKA</GPE> (<ORG>AP</ORG>) -- X&Y Ltd. &amp; M.K. Ltd will be merged.', etree.HTMLParser())
>>> etree.tostring(tree)
'<html><body><gpe>LUSAKA</gpe> (<org>AP</org>) -- X&amp;Y Ltd. &amp; M.K. Ltd will be merged.</body></html>'
>>> tree.xpath('//gpe/text()')
['LUSAKA']