【发布时间】:2019-12-23 12:09:22
【问题描述】:
我正在尝试编写一个为我编写代码的程序。想象一下,我在网站上有一个 UL 列表,我需要为列表中的每个元素抓取所有 xpath 选择器。有没有简单的方法告诉 python 抓取 UL 中所有元素的 xpath 选择器?
例如我们有这个 UL
<ul id="test">
<li><a href="#">Zurich</a></li>
<li><a href="#">Geneva</a></li>
<li><a href="#">Winterthur</a></li>
<li><a href="#">Lausanne</a></li>
<li><a href="#">Lucerne</a></li>
</ul>
我在 python 中有这段代码
ul= driver.find_elements_by_id('test')
for element in ul:
selector = **find the xpath/selector**
text = element.text
如何为 UL 中的每个链接抓取 xpath?
谢谢!
编辑** 这是我找到的最佳解决方案,但它使用了其他几个模块。有没有办法只用硒来做到这一点?
lxml 可以使用 getpath() 方法为您自动生成绝对 xpath。
示例(使用维基百科主页,获取徽标的 xpath 表达式):
import urllib2
from lxml import etree
data = urllib2.urlopen("https://en.wikipedia.org")
tree = etree.parse(data)
element = tree.xpath('//div[@id="p-logo"]/a')[0]
print tree.getpath(element)
【问题讨论】:
-
你能根据你的示例 html 提供你想要的输出吗?