python - 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,类看起来也一样)。
解决方案
我专注于尝试访问牢房本身。但是,我改变了主意,尝试从“webelement parent”(行本身)获取内容。
该行的 text 属性具有我需要的信息。
唯一的问题是我必须解析一些文本(并不难)。所以最后我不需要访问不同的 tds。
推荐阅读
- html - 如何防止图像改变元素的高度?HTML 和 CSS
- javascript - 如何使用替换(),切片()或谷歌表格中的其他函数删除字符串中第二个“”之后的所有内容
- docker - 使用 heroku.yml 在 Heroku 上使用 Celery App 部署 Flask
- haskell - 如何为 quickBatch 测试编写 EqProp 实例?
- javascript - 使用 React 的客户端请求加密
- python - 如何将相同的函数应用于字典数组中的每个值?
- elixir - 使用预加载时如何检查未定义的值并使用 Ecto 不返回值
- python - 可以将依赖于外部函数中对象的嵌套函数分离到另一个 .py 文件以清理代码吗?
- xaml - Xamarin.Forms XAML GridView 模板格式问题
- node.js - 有没有办法让我的机器人检查 DM 并将它们发布到我服务器的频道中?