使用ElementTree/lxml查找文本字符串的父标签
我正在尝试从一段文本中“提取”出整段文字,或者说从HTML文档中获取剩下的内容。
我现在的做法是试图找到这个文本在HTML中对应的“父标签”,我使用的是lxml这个库来解析HTML。(如果你知道更好的解决办法,我非常乐意听听!)
举个例子,我想在树形结构中搜索“这里是文本字符串”,然后返回对应的“p”标签。(注意,我事先并不知道HTML的具体布局)
<html>
<head>
...
</head>
<body>
....
<div>
...
<p>TEXT STRING HERE ......</p>
...
</html>
谢谢你的帮助!
1 个回答
3
这是一个使用ElementTree的简单方法。需要注意的是,你的HTML输入必须是有效的XML格式(所以我在你的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)