2009-06-22 90 views
2

我試圖從文本中提取一段文本,並從HTML中「提取」段落/文檔中的其餘文本。使用ElementTree/lxml查找文本字符串的父標記

我目前的做法是試圖找到已經用lxml解析過的html中字符串的「父標籤」。 (如果您知道解決此問題的更好方法,那麼我就是耳朵!)

例如,在樹中搜索「TEXT STRING HERE」並返回「p」標記。 (注意,我不會知道html的確切佈局)

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

感謝您的幫助!

回答

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) 
相關問題