You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何抓取Current Holdings表格?现有Selenium代码求助

修正后的Current Holdings表格抓取方案

问题排查与修正要点

  • 补充缺失的selenium核心模块导入,否则代码会因找不到webdriver对象报错
  • 补全目标网页的完整URL,当前url = 'https:/'为无效地址
  • 调整等待条件:表格元素无需可点击权限,改用EC.presence_of_element_located等待元素加载完成即可,避免不必要的判断逻辑
  • 确保表格IDdgtopHolders与实际页面元素匹配,可通过浏览器开发者工具(F12)验证

修正后的完整代码

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By    
import pandas as pd

# 配置Firefox浏览器选项
options = webdriver.FirefoxOptions()
options.binary_location = r'C://Mozilla Firefox/firefox.exe'

# 初始化浏览器驱动(Selenium 3.x版本写法)
driver = webdriver.Firefox(executable_path='C://geckodriver.exe', options=options)

# 替换为目标网页的完整URL
url = 'https://目标网站完整地址'
driver.get(url)

# 等待表格元素加载完成
table = WebDriverWait(driver, 20).until(
    EC.presence_of_element_located((By.ID, 'dgtopHolders'))
)

# 解析表格HTML并转换为DataFrame
dfs = pd.read_html(table.get_attribute('outerHTML'))
print(dfs[0])

# 关闭浏览器释放资源
driver.quit()

针对Selenium 4.x版本的适配

若使用Selenium 4.0及以上版本,executable_path参数已被废弃,需改用Service类指定驱动路径,代码调整如下:

from selenium.webdriver.firefox.service import Service

# 替换原驱动初始化代码
service = Service('C://geckodriver.exe')
driver = webdriver.Firefox(service=service, options=options)

额外注意事项

  • 若表格通过AJAX动态加载,可适当延长等待时间(如将20改为30)
  • 若页面存在iframe嵌套表格,需先切换到对应iframe再执行表格抓取逻辑

内容的提问来源于stack exchange,提问作者Agustos Imola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 07:07:02