如何在 python 中解析 requests.session cookie 属性
How to parse requests.session cookie attributes in python
我正在编写一个 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
因此,为了仅打印 cookie,您可以尝试执行以下代码:
payload = {'username': USER, 'password': PASSWORD}
s = requests.session()
s.post(SiteLogin, data=payload)
list(s.cookies)
希望这对您有所帮助
所以,根据 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)
为了将来参考,我建议您使用 documentation 中建议的以下语法:
s.cookies.get('expires')
我正在编写一个 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
因此,为了仅打印 cookie,您可以尝试执行以下代码:
payload = {'username': USER, 'password': PASSWORD}
s = requests.session()
s.post(SiteLogin, data=payload)
list(s.cookies)
希望这对您有所帮助
所以,根据 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)
为了将来参考,我建议您使用 documentation 中建议的以下语法:
s.cookies.get('expires')