有一段html文本
这是标题
这是内容
要移除的内容
我希望把
移除要移除的内容
安装lxml
pip install lxml
代码实例
# -*- coding: utf-8 -*-
from lxml import etree
text = """
这是标题
这是内容
要移除的内容
"""
tree = etree.fromstring(text)
# 返回一个列表
remove_tags = tree.xpath('//div[last()]')
if remove_tags:
remove_tag = remove_tags[0]
remove_tag.getparent().remove(remove_tag)
print(etree.tounicode(tree))
"""
这是标题
这是内容
"""
最后也实现了我的要求,可以封装为单独的函数,以便调用
from lxml import html, etree
def remove_elements(html, xpath):
"""
移除html 文本中的元素
:param html: str
:param xpath: str
:return: str
"""
# tree = etree.fromstring(html)
tree = html.fragment_fromstring(f'{text}')
# 返回一个列表
remove_tags = tree.xpath(xpath)
for remove_tag in remove_tags:
remove_tag.getparent().remove(remove_tag)
return etree.tounicode(tree)
if __name__ == '__main__':
text = """
这是标题
这是内容
要移除的内容
"""
print(remove_elements(text, '//div[last()]'))
参考 https://lxml.de/tutorial.html