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

如何通过Selenium获取重定向过程中中间页面设置的Cookie

实现方案

有两种常用的实现方案,适配不同的重定向场景:

场景1:b.com返回服务端3xx重定向(跳转由浏览器内核直接处理,不会渲染b.com页面)

这种场景下页面不会停留在b.com,需要通过Chrome DevTools Protocol(CDP)监听网络响应,直接提取b.com返回的Cookie:

  • 实现逻辑:开启Selenium的网络监听,匹配b.com的响应,提取响应头中的Set-Cookie字段,无需暂停跳转即可直接获取Cookie
  • 代码示例(Python + Selenium 4+):
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
driver = webdriver.Chrome(options=chrome_options)

# 开启网络域监听
driver.execute_cdp_cmd("Network.enable", {})
b_cookies = []

def intercept_response(event):
    # 匹配b.com域名的响应
    if "b.com" in event["response"]["url"]:
        # 提取响应头中的Set-Cookie
        set_cookies = event["response"].get("headers", {}).get("Set-Cookie", [])
        if isinstance(set_cookies, str):
            set_cookies = [set_cookies]
        b_cookies.extend(set_cookies)

# 注册响应接收回调
driver.add_cdp_listener("Network.responseReceived", intercept_response)

# 执行登录请求
driver.get("https://a.com/login")

# 此时b_cookies已经存储了b.com返回的所有Cookie
print(b_cookies)

场景2:b.com返回200状态码,通过前端JS定时器实现毫秒级跳转

这种场景可以通过提前拦截页面加载,在JS跳转执行前获取Cookie:

  • 实现逻辑:将页面加载策略设置为eager,DOM加载完成后立刻返回控制,不需要等待JS执行,此时轮询检测当前URL,匹配到b.com时直接调用get_cookies()即可拿到对应域名的Cookie
  • 代码示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

chrome_options = Options()
# 页面加载策略设为eager,DOM加载完成就停止等待,不用等资源和JS执行
chrome_options.page_load_strategy = 'eager'
driver = webdriver.Chrome(options=chrome_options)

driver.get("https://a.com/login")

# 轮询当前URL,100ms查一次,最多轮询1秒
for _ in range(10):
    current_url = driver.current_url
    if "b.com" in current_url:
        # 此时获取到的就是b.com域名下的Cookie
        b_cookies = driver.get_cookies()
        print(b_cookies)
        break
    time.sleep(0.1)

注意事项

  • 若后续需要使用b.com的Cookie,注入时需要先导航到b.com的任意路径(只要域名匹配即可),再调用add_cookie()方法注入
  • 如果使用的是Selenium 3版本,无法原生支持CDP调用,可以安装selenium-wire库替代原生driver,直接通过driver.requests属性获取所有历史请求的响应头提取Cookie

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:21:00