首页 > 解决方案 > 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() 方法来解决这个问题,但这似乎并没有解决问题。知道如何解决这个问题吗?

标签: python

解决方案


我发现以下代码可以工作:

        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)

我不知道 ++ 做什么。所以如果有人知道,请发表评论。


推荐阅读