首页 > 解决方案 > Python-Selenium table-scraper 只返回第一行

问题描述

我正在尝试从带有硒的表中提取信息。

我得到了行:

rows = driver.find_elements_by_xpath('//tbody/tr')

我正在尝试在该行中获取两个特定的单元格:

for r in rows:
    diccionario["property1"] = driver.find_element_by_xpath(xpath).text
    diccionario["property2"] = driver.find_element_by_xpath(xpath).text

with open("bbdd.json", "a", encoding="utf-8") as bd:
    json.dump(diccionario, bd, ensure_ascii=False, indent=4)

但是,它只会返回第一行的信息(重复的次数与行数一样多)

有没有办法“强制”代码找到我们当前在 for 循环中迭代的行中的元素?

代码

所有的 trs(行)代码看起来都一样。

我需要的 tds/cell 是前两个(对于不同行中的每个 td,类看起来也一样)。

在此处输入图像描述

标签: pythonseleniumweb-scrapinghtml-tablehtml-tbody

解决方案


我专注于尝试访问牢房本身。但是,我改变了主意,尝试从“webelement parent”(行本身)获取内容。

该行的 text 属性具有我需要的信息。

唯一的问题是我必须解析一些文本(并不难)。所以最后我不需要访问不同的 tds。


推荐阅读