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

使用Requests库登录后如何获取响应Cookie?

解决登录后Cookie失效的问题

你的问题出在没有用会话保持请求状态,两次独立的requests.post和requests.get是完全隔离的,手动传递response.cookies只会带上登录请求返回的部分Cookie,后续页面返回的新Cookie(比如会话更新的token)没被跟踪到。

直接用requests.Session()就能解决,会话对象会自动维护所有Cookie的变化,包括登录后响应里的新Cookie,不用手动处理:

import requests

# 创建会话对象,自动维护Cookie
session = requests.Session()

url = 'http://website/login'
creds = {'_method':'****','username':'*****','password':'*****'}

# 用会话发送登录请求,会话会保存登录后的所有Cookie
login_response = session.post(url, data=creds)

# 用同一个会话发送目标页面请求,自动带上最新的Cookie
report_response = session.get('http://website/reports/view/17')

# 可以查看当前会话的所有Cookie,确认是否包含响应里的新Cookie
print(session.cookies)

额外注意点

  • 登录请求如果有重定向(比如登录后自动跳转到首页),会话会自动跟踪重定向过程中的所有Set-Cookie头,不用额外处理。
  • 如果之前手动保存Cookie没生效,是因为你只保存了登录请求的Cookie,没把后续页面返回的新Cookie也加进去,而会话会自动做这件事。
  • 检查登录请求的响应头里的Set-Cookie,会话会把这些全部存入session.cookies,后续请求会自动带上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:55:17