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

如何使用Requests从响应头Set-Cookie中提取Session_id?

提取Set-Cookie中的Session_id

方法一:利用Requests自带的CookieJar(推荐)

Requests库会自动解析响应中的Cookie,存入response.cookies(一个RequestsCookieJar对象),可以直接通过键名获取目标Cookie值:

url = 'https://passport.yandex.ru/registration-validations/change-pwd-commit'

header = {
    'User-Agent': my_user_agent,
    'referer': 'https://passport.yandex.ru/',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': "Windows",
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'Host': 'passport.yandex.ru',
    'Origin': 'https://passport.yandex.ru',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'ru',
    'X-Requested-With': 'XMLHttpRequest'
}

data = {
    'csrf_token': csrf_token,
    'track_id': track_id
}

# 注意:GET请求传data不符合常规规范,若接口要求POST请改用requests.post,否则建议改为params=data
response = requests.get(url=url, headers=header, data=data)

# 直接通过键名获取Session_id
session_id = response.cookies.get('Session_id')
print(session_id)

方法二:手动解析Set-Cookie字符串

如果需要直接处理响应头中的Set-Cookie字段,可以按以下步骤拆分提取:

  1. 从响应头中取出Set-Cookie值
  2. 用逗号拆分多个独立的Cookie条目(多个Set-Cookie头会被合并为逗号分隔的字符串)
  3. 遍历条目,拆分出键值对并匹配目标Cookie
# 获取Set-Cookie字符串
set_cookie_str = response.headers.get('Set-Cookie', '')

# 拆分多个Cookie条目
cookie_entries = set_cookie_str.split(', ')

session_id = None
for entry in cookie_entries:
    # 拆分键值对,忽略后续的expires、path等属性
    key_value = entry.split(';')[0].split('=', 1)
    if len(key_value) == 2 and key_value[0] == 'Session_id':
        session_id = key_value[1]
        break

print(session_id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:55:25