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

如何使用Selenium获取Opta赛事数据?解决10300错误及Sources访问问题

用Selenium获取Opta事件数据及scoresway.com爬取方案

一、获取api.performfeeds.com数据的核心思路

你在Sources面板看到的api.performfeeds.com数据,本质是浏览器发起网络请求后返回的资源,不需要直接操作Sources面板。用Selenium结合Chrome DevTools协议(CDP)就能捕获这些请求的响应体,绕过直接访问链接时的10300错误——该错误通常是因为请求缺少浏览器自动携带的验证参数,比如Cookie、Token。

具体实现步骤(Python示例)

  1. 初始化ChromeDriver时启用CDP网络监听
  2. 注册响应监听事件,过滤目标域名的请求
  3. 获取并解析响应体数据
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json

def capture_opta_data():
    chrome_options = Options()
    # 可选:自动打开开发者工具,方便调试
    chrome_options.add_argument("--auto-open-devtools-for-tabs")
    
    driver = webdriver.Chrome(options=chrome_options)
    # 启用网络监控
    driver.execute_cdp_cmd("Network.enable", {})
    
    # 监听响应完成事件,过滤目标域名
    def on_response(response):
        response_url = response.get("response", {}).get("url", "")
        if "api.performfeeds.com" in response_url:
            request_id = response["requestId"]
            # 获取响应体内容
            res_body = driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})
            try:
                opta_data = json.loads(res_body["body"])
                # 在这里处理数据:保存到文件、分析等
                print("成功捕获Opta事件数据")
                print(opta_data.keys())
            except json.JSONDecodeError:
                print("响应体不是JSON格式")
    
    # 添加CDP监听
    driver.add_cdp_listener("Network.responseReceived", on_response)
    
    # 访问scoresway的目标赛事页面
    driver.get("https://www.scoresway.com/your-target-match-url")
    
    # 等待数据加载完成(可替换为显式等待,比如等待某个元素出现)
    input("确认数据加载后按回车退出...")
    driver.quit()

if __name__ == "__main__":
    capture_opta_data()

二、scoresway.com爬取难点应对

scoresway的反爬机制主要集中在请求验证参数、行为检测和IP限制上,可通过以下方式破解:

  • 模拟真实用户行为:用Selenium添加随机滚动、点击、延迟,避免固定访问模式;设置真实的User-Agent,不要用默认的ChromeDriver UA。
  • 提取验证参数:通过CDP监听请求,复制请求头中的Authorization、X-Session-Token等参数,后续可以直接用这些参数发起API请求(减少Selenium的性能开销)。
  • 处理动态参数:如果请求中包含timestamp、sign等签名参数,在Sources面板找到生成这些参数的JS文件,逆向其加密逻辑,自己生成合法参数。
  • IP轮换:如果出现IP封禁,使用代理池切换IP,避免单一IP频繁访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:53:56