2015-04-27 60 views
0

我构建了一个小脚本,该脚本应该在页面中找到一些特定的字符串,并返回包含此字符串的元素的xpath。 目的是使用此xpath来查找具有相同上下文的字符串。python - 找到包含字符串的元素的xpath

我使用这个代码:

import requests 
from lxml import html 
page = requests.get("http://www.w3schools.com/xpath/") 
tree = html.fromstring(page.text) 
result = tree.xpath('//*[. = "XML"]') 

result[0]回报<Element b at 0x7f034a08e940>,我无法弄清楚如何反正觉得这个元素的XPath。

我想有该字符串是:

/html/body/div[4]/div/div[2]/div[2]/div[1]/div/ul/li[2] 

回答

3

您可以使用getpath()element得到的XPath,例如:

import requests 
from lxml import html 

page = requests.get("http://www.w3schools.com/xpath/") 
root = html.fromstring(page.text) 
tree = root.getroottree() 
result = root.xpath('//*[. = "XML"]') 
for r in result: 
    print(tree.getpath(r)) 

输出:

/html/body/div[3]/div/ul/li[10] 
/html/body/div[3]/div/ul/li[10]/a 
/html/body/div[4]/div/div[2]/div[2]/div[1]/div/ul/li[2] 
/html/body/div[5]/div/div[6]/h3 
/html/body/div[6]/div/div[4]/h3 
/html/body/div[7]/div/div[4]/h3 
相关问题