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

如何使用Python3+Requests提取请求头中的Cookie?

问题原因与解决办法

首先得理清楚两个核心点:

  • 你在Chrome里看到的请求Cookie,是浏览器之前访问该网站时留存的旧Cookie,但Requests默认发起的是全新无状态请求,不会自动带上这些历史Cookie,所以r.request.headers里自然看不到。
  • r.cookies是服务器通过响应头Set-Cookie返回给你的新Cookie,要是这次请求服务器没下发Cookie,就会返回空的<RequestsCookieJar[]>。

具体解决办法

1. 手动添加Cookie到请求头

把Chrome开发者工具里看到的Cookie字符串复制出来,手动加到Requests的请求头中:

import requests

headers = {
    'Cookie': '替换成你在Chrome里看到的完整Cookie内容'
}
r = requests.get("https://www.example.com", headers=headers)
# 现在就能看到发送出去的Cookie了
print(r.request.headers['Cookie'])

2. 使用Session维持会话

如果需要多次请求保持Cookie状态(比如登录后后续操作),用requests.Session()可以自动保存服务器返回的Cookie,后续请求会自动带上:

import requests

session = requests.Session()
# 第一次请求,服务器返回的Cookie会被session保存
r = session.get("https://www.example.com")
# 后续请求自动携带已保存的Cookie
r2 = session.get("https://www.example.com/some-page")
print(r2.request.headers.get('Cookie'))

3. 检查服务器是否下发Cookie

想确认服务器有没有给你Cookie,可以打印响应的Set-Cookie头:

import requests
r = requests.get("https://www.example.com")
print(r.headers.get('Set-Cookie'))

如果这个值为空,说明服务器这次请求没设置Cookie,r.cookies自然是空的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:22:03