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

如何用Python的Selenium点击Flashscore的“显示更多比赛”按钮爬取隐藏数据

Flashscore隐藏赛事加载按钮点击失效解决方案

前置注意点

你提到的按钮包含两个class属性,使用Selenium定位时不要使用By.CLASS_NAME方法(该方法仅支持单个class参数),正确的定位方式是使用CSS选择器:

from selenium.webdriver.common.by import By
load_more_btn = driver.find_element(By.CSS_SELECTOR, '.event__more.event__more--static')

方案1:JavaScript强制触发点击(最高兼容性)

Selenium原生点击方法容易被页面事件监听、元素遮挡、未激活等情况拦截,直接调用页面原生JS点击方法稳定性更高:

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.flashscore.com/football/albania/superliga-2019-2020/results/")
time.sleep(3) # 等待页面初始加载完成

# 循环点击直到所有赛事加载完成
while True:
    try:
        load_more_btn = driver.find_element(By.CSS_SELECTOR, '.event__more.event__more--static')
        # 执行JS点击
        driver.execute_script("arguments[0].click();", load_more_btn)
        time.sleep(2) # 等待新赛事渲染完成
    except:
        # 按钮不存在说明已加载完全部赛事
        break

方案2:滚动到可视区域后点击

部分网站的交互逻辑要求元素完全出现在视口才会响应点击事件,操作前先滚动按钮到可视区域:

from selenium.webdriver.common.action_chains import ActionChains

load_more_btn = driver.find_element(By.CSS_SELECTOR, '.event__more.event__more--static')
# 滚动到按钮居中显示
driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", load_more_btn)
time.sleep(0.5)
# 模拟用户鼠标移动后点击
ActionChains(driver).move_to_element(load_more_btn).click().perform()

方案3:直接调用数据接口(推荐)

模拟浏览器点击效率低且容易受页面渲染影响,你可以直接抓包获取结构化数据:

  1. 打开浏览器开发者工具的「网络」面板,筛选「Fetch/XHR」类型请求
  2. 手动点击一次「Show more matches」按钮,观察新发起的请求,请求参数会包含赛季、赛事类型标识,返回值为JSON格式的赛事数据
  3. 直接构造该请求用requests库调用即可拿到所有隐藏赛事信息,不需要操作浏览器

优化提示

可以用显式等待替代固定time.sleep提升执行效率,示例:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 最多等待10秒直到按钮可点击
load_more_btn = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '.event__more.event__more--static'))
)

内容的提问来源于stack exchange,提问作者Om Prakash Panda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:48:03