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

ESPNCricinfo API爬取受阻:Selenium Wire无法捕获目标请求咨询

问题解答:Selenium Wire无法捕获ESPNCricinfo的hs-consumer-api请求

1. 无法捕获请求的可能原因

  • 请求由Service Worker发起:ESPNCricinfo这类现代网站常使用Service Worker处理API请求,Selenium Wire默认的代理拦截机制无法覆盖Service Worker的独立运行上下文,导致这类请求绕过代理不被捕获。
  • 请求命中浏览器缓存:如果页面加载时目标API请求命中了浏览器缓存,不会发起新的网络请求,Selenium Wire自然无法捕获。
  • Selenium Wire代理配置缺失:若未正确配置HTTPS拦截(比如未安装根证书),浏览器可能会拒绝通过代理发送HTTPS请求,导致目标API请求绕开代理。

2. 可行解决方案

方案一:禁用Service Worker

在ChromeOptions中添加禁用参数,强制请求回到普通上下文,让Selenium Wire能捕获:

from seleniumwire import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-service-workers")
driver = webdriver.Chrome(options=chrome_options)

方案二:利用Chrome DevTools Protocol(CDP)捕获请求

直接通过CDP监听网络请求,不受Service Worker限制:

from selenium import webdriver

driver = webdriver.Chrome()
driver.execute_cdp_cmd('Network.enable', {})

def capture_request(request):
    if 'hs-consumer-api' in request['params']['request']['url']:
        headers = request['params']['request']['headers']
        auth_token = headers.get('x-hsci-auth-token')
        print(f"获取到认证Token: {auth_token}")

driver.add_cdp_listener('Network.requestWillBeSent', capture_request)

# 访问目标计分卡页面
driver.get("你的目标赛事页面URL")

方案三:禁用浏览器缓存

确保每次加载页面都发起新请求,避免缓存导致请求不触发:

chrome_options.add_argument("--disable-cache")
chrome_options.add_argument("--disk-cache-size=0")

方案四:从页面JS变量提取Token

部分网站会将认证Token嵌入页面的全局JS变量中,直接执行JS提取:

# 示例:假设Token存在window.__INITIAL_STATE__里
initial_state = driver.execute_script("return window.__INITIAL_STATE__")
auth_token = initial_state.get('auth', {}).get('token')

方案五:替换为mitmproxy捕获请求

使用mitmproxy作为独立代理,它能捕获所有网络请求(包括Service Worker发起的):

  1. 启动mitmproxy:mitmproxy
  2. 配置Selenium使用mitmproxy代理:
chrome_options.add_argument("--proxy-server=http://127.0.0.1:8080")
# 需提前安装mitmproxy的根证书到浏览器
driver = webdriver.Chrome(options=chrome_options)

之后在mitmproxy界面中筛选包含hs-consumer-api的请求,查看x-hsci-auth-token头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 21:33:20