这段代码的目的是从一些链接中抓取一个数据表,然后把它变成一个 pandas 数据框。
问题是这段代码只抓取了表格第一页中的前 7 行,我想捕获整个表格。所以当我试图遍历表格页面时,我得到了一个错误。
这是代码:
from selenium import webdriver
urls = open(r"C:\Users\Sayed\Desktop\script\sample.txt").readlines()
for url in urls:
driver = webdriver.Chrome(r"D:\Projects\Tutorial\Driver\chromedriver.exe")
driver.get(url)
for item in driver.find_element_by_xpath('//*[contains(@id,"showMoreHistory")]/a'):
driver.execute_script("arguments[0].click();", item)
for table in driver.find_elements_by_xpath('//*[contains(@id,"eventHistoryTable")]//tr'):
data = [item.text for item in table.find_elements_by_xpath(".//*[self::td or self::th]")]
print(data)
这是错误:
追溯(最近一次通话):
文件“D:/Projects/Tutorial/ff.py”,第 8 行,in for item in driver.find_element_by_xpath(‘//*[contains(@id,“showMoreHistory”)]/a’):
TypeError: ‘WebElement’ 对象不可迭代
原文由 Sayed Gouda 发布,翻译遵循 CC BY-SA 4.0 许可协议
查看下面的脚本以从该网页获取整个表格。我在我的脚本中使用了硬编码延迟,这不是一个好习惯。但是,您始终可以定义
Explicit Wait
以使代码更健壮:要获取耗尽
show more
按钮以及定义Explicit Wait
的所有数据,您可以尝试以下脚本: