如何在python

时间:2019-03-29 21:22:05

标签: python python-3.x python-requests cookiejar

我正在编写python 3脚本来检查我正在处理的网站上cookie的特定属性。我目前使用requests.session对网站进行身份验证:

SiteLogin = 'https://mytestsite.com/login'
payload = {'username': USER, 'password': PASSWORD}
s = requests.session()
s.post(SiteLogin, data=payload)
s.cookies

现在,Cookie具有许多属性,包括名称,域名,有效期等。我无法找到一种方法来实际将所有属性公开为给定cookie的字典,以便我可以解析出期望的值。

我错过了一种方法吗?

编辑

已更新以澄清我所看到的内容:

>>> s.cookies
<RequestsCookieJar[Cookie(version=0, name='COOKIE_NAME', value='COOKIE_VALUE', port=None, port_specified=False, domain='DOMAIN, domain_specified=False, domain_initial_dot=False, path='PATH', path_specified=True, secure=True, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]>
>>> print(s.cookies)
<RequestsCookieJar[<Cookie 'COOKIE_NAME'='COOKIE_VALUE' for DOMAIN+PATH>]>
>>> print(s.cookies.get_dict())
{'COOKIE_NAME': 'COOKIE_VALUE'}

因此,可以说我想获取每个cookie的“ expires”值(注意,上面的内容可以通过运行s.cookies获得)。我如何只访问到期值?如果我的系统上有很多cookie,是否可以遍历所有cookie,并检查每个cookie的到期时间?

类似的东西:

>>> s.cookies['expires']
None

3 个答案:

答案 0 :(得分:0)

因此,仅打印cookie,您可以尝试实现以下代码:

payload = {'username': USER, 'password': PASSWORD}
s = requests.session()
s.post(SiteLogin, data=payload)
list(s.cookies)

希望这会有所帮助

答案 1 :(得分:0)

因此,找到了基于Fozoro答案的解决方案。 cookiejar中的cookie对象包含我感兴趣的成员属性。

payload = {'username': USER, 'password': PASSWORD}
s = requests.session()
s.post(SiteLogin, data=payload)
for cookie in list(s.cookies):
    print(cookie.expires)

答案 2 :(得分:0)

为将来参考,建议您使用documentation中建议的以下语法:

s.cookies.get('expires')