python - Python 循环无法遍历 html 表的所有值
问题描述
我正在尝试从表的一个特定列的所有行中获取所有数据。问题是循环仅多次获取第一行但无法继续到下一行。这是相关的代码。
numRows = len(driver.find_elements_by_xpath('/html/body/div[2]/div/form[3]/div[2]/div[1]/div/div/div/div[2]/div[4]/section[1]/div[2]/div/div/table/tbody/tr'))
numColumns = len(driver.find_elements_by_xpath('/html/body/div[2]/div/form[3]/div[2]/div[1]/div/div/div/div[2]/div[4]/section[1]/div[2]/div/div/table/thead/tr[2]/th'))
print(numRows)
# Prints 139
print(numColumns)
# prints 21
for i in range(numRows + 1):
df = []
value = driver.find_element_by_xpath("/html/body/div[2]/div/form[3]/div[2]/div[1]/div/div/div/div[2]/div[4]/section[1]/div[2]/div/div/table/tbody/tr['{}']/td[16]".format(i))
df.append(value.text)
print(df)
从打印方法中可以明显看出,我拥有表格的所有行和列。所以那部分有效。但是当我尝试遍历一个特定列的所有行时,我只得到第一个值。我试图通过使用format() 方法来解决这个问题,但这似乎并没有解决问题。知道如何解决这个问题吗?
解决方案
我发现以下代码可以工作:
rader = len(driver.find_elements_by_xpath('/html/body/div[2]/div/form[3]/div[2]/div[1]/div/div/div/div[2]/div[4]/section[1]/div[2]/div/div/table/tbody/tr'))
#kolonner = len(driver.find_elements_by_xpath('/html/body/div[2]/div/form[3]/div[2]/div[1]/div/div/div/div[2]/div[4]/section[1]/div[2]/div/div/table/thead/tr[2]/th'))
kolonneFinish = []
kolonneBib = []
for i in range(1, rader + 1):
valueFinish = driver.find_element_by_xpath("/html/body/div[2]/div/form[3]/div[2]/div[1]/div/div/div/div[2]/div[4]/section[1]/div[2]/div/div/table/tbody/tr["+str(i)+"]/td[16]")
kolonneFinish.append(valueFinish.text)
我不知道 ++ 做什么。所以如果有人知道,请发表评论。
推荐阅读
- python-3.x - 更改文本文档的值时遇到问题
- acumatica - 在 Acumatica 中使用自定义屏幕的批准
- dart - 导航器在 Firebase 消息回调方法中不起作用
- php - 将默认值动态设置为变化
- android - 从回收站列表中删除的数据,但不是从 Sqlite 数据库中删除的数据
- php - symfony 2.8 在制作结帐模块时出现问题(已关闭)
- mpeg-dash - 如何在 mac 中设置 MPEG-DASH?
- c++ - 在单元测试中模拟 system_clock
- amazon-web-services - 部署阶段失败看不到 s3 存储桶
- sql - 数据量大时如何以 JSON 格式导入 SQL Server Query