有什么办法可以通过 HTML、selenium、python 选择元素

新义哲

我正在通过 selenium、python 制作爬行应用程序,但我被卡住了。

在此处输入图片说明

如图所示,我可以选择文本(带下划线)。但我需要的是文本旁边的数字。

但在 F12 铬

在此处输入图片说明

numbers(red cricle) 有类名,但类名都是一样的。没有可用于通过 selenium 选择数字的指标。(据我所知)

所以我试图找到任何通过硒通过 HTML 选择元素的方法。但我找不到任何。有什么办法吗?

如果我要找的东西不存在,我很抱歉。我只知道 python 和 selenium ..所以如果我不能处理这个,请告诉我。

- -编辑

我觉得我的解释不好。我需要的是先找到文本,而不是收集数字(两个)。但有大量的文字。我只是截图一点。所以我可以通过它的特定 ID(很多)来定位文本。但是我怎样才能得到嵌套到文本中的数字。这是我的问题。抱歉解释不好

如果 BeautifulSoup 可以处理这个问题,请告诉我。谢谢你的帮助。


特别感谢克里斯汀

她的代码解决了我的问题。

克里斯汀

您可以使用 XPath 索引来完成选择第一个td元素。鉴于屏幕截图,您可以选择第一个td包含2,.167如下:

cell = driver.find_element_by_xpath("//tr[td/a[text()='TEXT']]/td[@class='txt-r'][1]")
print(cell.text)

你应该用TEXT你在截图中加下划线的字符替换——我没有这个键盘,所以我不能为你输入文本。

上面的 XPath 将查询所有表格行,选择具有所需文本的行,然后查询txt-r具有行内类的表格单元格因为这两个td元素都有 class txt-r,所以您只想选择其中一个,使用由 指示的索引[1][1]会挑头td,用文字2,167

用户要求的完整样本:

# first get all text on the page
all_text_elements = driver.find_elements_by_xpath("//a[contains(@class, 'link-resource')]")

# iterate text elements and print both numbers that are next to text
for text_element in all_text_elements:

    # get the text from web element
    text = text_element.text

    # find the first number next to it (2,167 from sample HTML)
    first_number = driver.find_element_by_xpath("//tr[td/a[text()='" + text + "']]/td[@class='txt-r'][1]")
    print(first_number.text)

    # find 2nd number (0 from sample HTML)
    second_number = driver.find_element_by_xpath("//tr[td/a[text()='" + text + "']]/td[@class='txt-r'][2]")
    print(second_number.text)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java Selenium WebDriver通过文本选择Web元素

如何通过Selenium和Python按html单击元素

返回所有选择Web元素作为Selenium中的列表

如何使用Python在Selenium Webdriver中选择具有通用类名称的元素?

如何通过Selenium和Python根据html查找元素的Xpath

如何通过Selenium和python从下拉菜单中选择元素?

Python Selenium选择具有相似类名的元素

如何使用python / selenium通过CSS选择器查找元素

如何通过Selenium / Python选择没有ID的Web元素

如何使用Selenium和Python选择具有unselectable =“ on”属性的kendo下拉元素

有没有办法从Python的单独文本文件中选择某些元素?

有什么办法可以通过子元素定位元素吗?

有没有什么办法可以渲染pdf.js页面,例如真正的html元素而不是canvas或svg?

有没有办法查看选择器捕获的实际HTML元素?

通过值或带有硒的ID选择html元素

通过在选择器中使用逻辑OR选择带有jQuery的HTML元素

使用cssSelector通过文本选择嵌套元素-Selenium WebDriver

如何通过JQuery选择其中没有html的<select>元素

有什么办法可以通过给定的对象地址访问gdb中的python对象?

为什么Selenium webdriver无法选择某些元素?

如何在 Selenium 和 Python 中通过 xpath 选择元素?

Selenium - 通过 Xpath 根据多个属性选择元素

如何在 Python 中使用 Selenium WebDriver 通过 CSS 选择器配对元素的子元素?

如何通过 Selenium 和 Python 在 html 中编辑元素属性?

在 selenium python 中仅选择带有标题标签的 web 元素

Xpath 没有使用 Splinter/Selenium Python 3 选择正确的元素

通过python selenium获取html站点“输入”元素

Python selenium 通过 xpath 或 css 选择器查找元素

在 Selenium Python 中通过文本与 HTML 元素交互