I am trying to get the expiry time of a specific cookie that I retrieve from the server as:
s = requests.session()
r = s.get("http://localhost/test")
r.cookies
This will list all cookies sent by the server (I get 2 cookies) as:
<[
argcgev221 for localhost.local/>, ]>
When I do:
r.cookies.keys
I get:
eJar'>[Cookie(version=0, name='PHPSESSID', value='30tg9vn9376kmh60ana2essfi3', p
ort=None, port_specified=False, domain='localhost.local', domain_specified=False
, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires
=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Co
okie(version=0, name='WebSecu', value='f', port=None, port_specified=False, doma
in='localhost.local', domain_specified=False, domain_initial_dot=False, path='/test', path_specified=False, secure=False, expires=1395491371, discard=Fals
e, comment=None, comment_url=None, rest={}, rfc2109=False)]>>
As you can see, we have two cookies. I would like to get the expiry time of the cookie named "WebSecu"
Thank you
解决方案
In requests, the cookie jar is a very special object. You might notice that if you do:
r.cookies['WebSecu']
You'll receive the value of that cookie as a string (in your example f). To get the actual cookie object that holds that information, you will have to iterate over the cookie jar like so:
expires = None
for cookie in r.cookies:
if cookie.name == 'WebSecu':
expires = cookie.expires