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

使用Selenium爬取网页表格运行无输出问题求助

问题排查及修复方案

核心问题梳理

  • CSS选择器语法错误:你使用id-table-spiel tr作为CSS选择器不符合规范,ID选择器需要前缀#,正确写法为#id-table-spiel tr,这是你获取不到表格内容、无输出的最直接原因。
  • Selenium方法适配问题:Selenium 4.x版本已废弃find_elements_by_css_selector这类旧API,统一使用find_elements(By.CSS_SELECTOR, 选择器)的调用方式,旧方法在高版本环境中会直接失效。
  • 页面等待逻辑缺失:点击「Letzte Spielwoche」选项后,表格需要加载渲染时间,你没有在这一步添加等待,代码会在表格渲染完成前就执行元素查询,返回空列表。
  • 冗余操作可优化:你代码中多处ActionChains的移动元素操作没有必要,可直接点击可见元素,多余操作反而可能引入交互异常。

修正后可运行代码

from selenium.webdriver import Firefox
from selenium.webdriver.common.by import By
import time

# 注意替换为你本地真实的geckodriver绝对路径
driver = Firefox(executable_path='/Users/你的真实路径/PycharmProjects/Sportwinner/geckodriver')
driver.get("https://bskv.sportwinner.de/")

# 执行配置交互
driver.find_element(By.ID, "id-button-einstellungen").click()
driver.find_element(By.ID, "id-klub-name").click()
driver.find_element(By.ID, "id-klub-name").send_keys("Dreieck Schweinfurt")
driver.find_element(By.ID, "id-button-einstellungen-option-ok").click()
time.sleep(1)

# 选择联赛选项
driver.find_element(By.ID, "id-dropdown-liga").click()
driver.find_element(By.LINK_TEXT, "Letzte Spielwoche").click()
# 等待表格渲染完成,网络慢可以改成2-3秒
time.sleep(2)

# 正确获取表格行元素
tableContent = driver.find_elements(By.CSS_SELECTOR, "#id-table-spiel tr")
for row in tableContent:
    print(row.text)

# 用完记得关闭浏览器
driver.quit()

运行注意事项

  • 确认geckodriver的路径填写正确,不要保留省略号占位符,也可以将geckodriver放到系统环境变量PATH中,就可以省略executable_path参数。
  • 如果运行仍无输出,可以适当调大time.sleep的时长,避免网络延迟导致的页面未加载完成问题。后续熟练后可以替换为Selenium的显式等待逻辑,效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:06:02