我正在尝试使用获取HTML表中所有行的计数。我的表包含184行,但我的代码只返回33行,行数为滚动。我已经检查了它只显示了33行的元素,一旦我向下滚动,旧的行就会从inspect元素中删除并添加新的行。因此,它保持在33为常数。在本例中,如何取184行作为行数并遍历所有行
我的解决办法是:
i = 0
l = []
while True:
i += 1
xpath_row = '//*[@id="fmEviewTable_tbody"]/tr['+ str(i) +']/td[7]'
time.sleep(0.5)
try:
row_text = WebDriverWait(self.driver,10).until(EC.visibility_of_element_located((By.XPATH, xpath_row))).text
except TimeoutException:
print("element not found")
print(f"line {i}, date: {row_text}")
l.append(row_text)
if i % 10 == 0:
self.driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.PAGE_DOWN)
time.sleep(1)
#stopping the loop at the end of row table
try:
self.driver.find_element(By.XPATH, '//*[@id="fmEviewTable_tbody"]/tr['+ str(i) +']/td[7]')
except:
break这是个打印屏幕
发布于 2022-03-14 13:00:03
1。希望您了解如何访问表中的每一行/单元格(可见的33行)并从中提取数据。
--让我们有两个2d数组:主数组,last_page数组。
最后的结果表将是删除重复行(如果有的话)之后的主2d数组。--如果在原始web表中可能出现重复行,我们将面临一个挑战,即如何将它们与作为我们刮取的一部分的重复条目区分开来。
2。另一种可能是,检查用于创建表的js库是否公开了获取所有行数据的方法。(例如,eviewtableObj.getData())您可以使用execute_script调用.Something。
https://stackoverflow.com/questions/71459492
复制相似问题