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

如何在Python中解析requests.session的Cookie属性

解决Requests Session中Cookie属性访问的问题

嘿,我来帮你搞定这个Cookie属性的问题!其实RequestsCookieJar本身是可迭代的容器,里面的每一项都是完整的Cookie对象——你看到的expires、domain这些属性,都可以直接通过点语法访问,只是你之前用的方法没触达而已。

单个Cookie的属性访问

如果你知道目标Cookie的名称,直接通过键名取出Cookie对象,然后就能访问它的所有属性了:

# 取出指定名称的Cookie对象
target_cookie = s.cookies['COOKIE_NAME']

# 访问expires属性
print(f"过期时间(Unix时间戳): {target_cookie.expires}")
# 其他属性也可以直接获取
print(f"Cookie名称: {target_cookie.name}")
print(f"所属域名: {target_cookie.domain}")
print(f"是否启用Secure: {target_cookie.secure}")
print(f"是否HttpOnly: {target_cookie.rest.get('HttpOnly') is not None}")

注意:如果是会话Cookie(比如你例子里的discard=True),expires会返回None,这类Cookie会在浏览器关闭后失效。

遍历所有Cookie并检查属性

当存在多个Cookie时,直接遍历RequestsCookieJar即可逐个处理每个Cookie:

# 遍历所有Cookie对象
for cookie in s.cookies:
    print(f"=== Cookie: {cookie.name} ===")
    print(f"值: {cookie.value}")
    print(f"过期时间: {cookie.expires}")
    print(f"域名: {cookie.domain}")
    print(f"路径: {cookie.path}")
    print(f"Secure属性: {cookie.secure}")
    print(f"HttpOnly属性: {'是' if cookie.rest.get('HttpOnly') else '否'}")
    print("------------------------")

将单个Cookie转为自定义字典

如果你需要把Cookie的所有关键属性打包成字典,可以自己构造:

def cookie_to_dict(cookie):
    return {
        'name': cookie.name,
        'value': cookie.value,
        'expires': cookie.expires,
        'domain': cookie.domain,
        'path': cookie.path,
        'secure': cookie.secure,
        'httponly': cookie.rest.get('HttpOnly') is not None
    }

# 转换单个Cookie
my_cookie_dict = cookie_to_dict(s.cookies['COOKIE_NAME'])
print(my_cookie_dict)

# 转换所有Cookie为字典列表
all_cookies_dict = [cookie_to_dict(cookie) for cookie in s.cookies]
print(all_cookies_dict)

为什么之前的方法不行?

  • s.cookies.get_dict()本来就是设计只返回name: value的键值对,所以看不到其他属性;
  • s.cookies['expires']是错误的用法,因为RequestsCookieJar的键是Cookie的名称,而不是属性名,所以这样会返回None(找不到名为expires的Cookie)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:52:53