Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python - get cookie expiry time using the requests library

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:

<<class 'requests.cookies.RequestsCookieJar'>[<Cookie PHPSESSID=cusa6hbtb85li8po
argcgev221 for localhost.local/>, <Cookie WebSecu=f for localhost.local/test>]>

When I do:

r.cookies.keys

I get:

<bound method RequestsCookieJar.items of <<class 'requests.cookies.RequestsCooki
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

like image 714
user1894963 Avatar asked Dec 11 '22 06:12

user1894963


1 Answers

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
like image 194
Ian Stapleton Cordasco Avatar answered Dec 26 '22 15:12

Ian Stapleton Cordasco