python - 如何为我的 Selenium 网页抓取找到更具描述性的 XML 路径?

标签 python xml selenium

我正在使用 Selenium 构建一个网站抓取工具,我想“单击”下图中突出显示的 div。

Website's HTML

我当前的代码(可以工作,但描述性不强)是:

button = driver.find_element_by_xpath("//div/div/div/div/div/div/div/div[5]/div[8]")
button.click()

我很高兴它能工作,但感觉很脆弱,因为我纯粹通过索引访问 div,没有任何其他识别功能。有没有办法,至少对于最后一个 div,我可以通过跨度内的文本指定我的选择?选择包含带有文本“Grandmaster”的跨度的 div 的语法是什么?

值得注意的是,这是任何“过滤器组”中唯一包含文本“Grandmaster”的 div。有没有办法专门选择这个 div,而不列出所有嵌套的 div(就像我在上面的代码中所做的那样)?

任何有关如何使 XML 路径的代码更加健壮的想法将不胜感激。

最佳答案

What would the syntax be for choosing the div that contains a span with the text "Grandmaster"?

语法是:

driver.find_element_by_xpath("//*[contains(text(), 'Grandmaster')]")

关于python - 如何为我的 Selenium 网页抓取找到更具描述性的 XML 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118079/

相关文章:

Python:如何访问此类列表中的数据?

java - jackson 奇怪的 XML 反序列化

python - 在Python、Selenium Webdriver中提取<a>内容

python - 更好的编程方式

python - Databricks - 在 Python 中创建函数 (UDF)

python - 如何使用 ElementTree (python) 解析 xml 时删除无效字符

java - writeStartElement 有 prvoide namespaceURI,为什么需要另一个 writeNamespace?

python - 我需要导航网页及其子页面链接中的每个链接

python - python调用CNBC后端API

python sigkill 捕捉策略