Python 使用ElementTree/lxml查找文本字符串的父标记

Python 使用ElementTree/lxml查找文本字符串的父标记,python,lxml,elementtree,Python,Lxml,Elementtree,我试图获取一个文本字符串,并从html中“提取”段落/文档中的其余文本 我目前的方法是尝试在html中找到用lxml解析的字符串的“父标记”。(如果你知道解决这个问题的更好方法,我洗耳恭听!) 例如,在树中搜索“TEXT STRING HERE”并返回“p”标记。(注意,我事先不知道html的确切布局) ... .... ... 文本字符串在这里 ... 谢谢你的帮助 这是使用ElementTree执行此操作的简单方法。它确实要求您的HTML输入是有效的XML(因此我在HTML中添加了适当

我试图获取一个文本字符串,并从html中“提取”段落/文档中的其余文本

我目前的方法是尝试在html中找到用lxml解析的字符串的“父标记”。(如果你知道解决这个问题的更好方法,我洗耳恭听!)

例如,在树中搜索“TEXT STRING HERE”并返回“p”标记。(注意,我事先不知道html的确切布局)


...
.... 
...
文本字符串在这里

...

谢谢你的帮助

这是使用ElementTree执行此操作的简单方法。它确实要求您的HTML输入是有效的XML(因此我在HTML中添加了适当的结束标记):

导入elementtree.elementtree作为ET
html=”“”
此处的文本字符串……

""" 对于ET.fromstring(html).getiterator()中的e: 如果e.text.find('text STRING HERE')!=-1: 打印“找到字符串%r,元素=%r”%(e.text,e)
<html>
<head>
...
</head>
<body>
.... 
<div>
...
<p>TEXT STRING HERE ......</p>
...
</html>
import elementtree.ElementTree as ET

html = """<html>
<head>
</head>
<body>
<div>
<p>TEXT STRING HERE ......</p> 
</div>
</body>
</html>"""

for e in ET.fromstring(html).getiterator():
    if e.text.find('TEXT STRING HERE') != -1:
        print "Found string %r, element = %r" % (e.text, e)