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

如何使用Python requests获取全部cookie值?为何requests仅能拿到部分cookie?

你遇到的requests只能获取部分cookie、selenium可以获取全量的问题,本质是两者的运行机制差异导致的,核心原因和对应解决方案如下:

核心原因

  • requests是HTTP请求库,仅能捕获单次/会话内HTTP响应头Set-Cookie字段返回的服务端侧生成的cookie,无法执行页面内嵌的JS代码,也无法获取JS运行时动态写入document.cookie的前端侧生成cookie。而selenium调用真实浏览器内核,会完整执行页面所有前端逻辑、跟进所有重定向跳转,会按照浏览器的cookie规则存储所有来源的cookie,因此可以拿到全量内容。
  • 部分站点会对请求上下文做校验,若requests请求的头信息、TLS指纹和正常浏览器差异较大,服务端会判定为异常请求,仅返回部分必要cookie,不会下发全量cookie内容。

解决方案

  • 方案1:selenium + requests组合使用,先用selenium启动浏览器拿到全量cookie,再赋值给requests会话复用,代码示例如下:
import requests
from selenium import webdriver

# 启动selenium获取全量cookie
driver = webdriver.Chrome()
driver.get("替换为你要访问的目标站点URL")
selenium_all_cookies = driver.get_cookies()
driver.quit()

# 把cookie写入requests会话
sess = requests.Session()
for cookie in selenium_all_cookies:
    sess.cookies.set(
        name=cookie["name"],
        value=cookie["value"],
        domain=cookie["domain"],
        path=cookie["path"],
        secure=cookie["secure"]
    )

# 后续使用sess发送请求即可携带全量cookie
resp = sess.get("替换为你要请求的接口/页面URL")
print(resp.text)
  • 方案2:纯requests实现,需要用抓包工具梳理所有cookie的生成逻辑:区分服务端下发的cookie、后续接口返回的cookie、JS加密生成的cookie,逐个模拟请求或生成逻辑,手动组装到requests的cookie字典中,同时要对齐浏览器的所有请求头、必要时做TLS指纹伪装,确保服务端下发全量cookie。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:45:03