Как разобрать атрибуты cookie request.session в python - PullRequest
1 голос
/ 30 марта 2019

Я пишу скрипт на 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'}

Итак, допустим, я хотел получить 'expires'значение для каждого куки (обратите внимание выше, это доступно при запуске s.cookies).Как я могу получить доступ только к значению срока действия?Если в моей системе много файлов cookie, возможно ли их циклически просмотреть и проверить срок действия каждого?

Что-то вроде:

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Итак, нашел решение, основанное на ответе Фозоро.Объект cookie внутри cookiejar содержит интересующие меня атрибуты члена.

payload = {'username': USER, 'password': PASSWORD}
s = requests.session()
s.post(SiteLogin, data=payload)
for cookie in list(s.cookies):
    print(cookie.expires)
0 голосов
/ 01 апреля 2019

Таким образом, чтобы просто распечатать файлы cookie, попробуйте ввести следующий код:

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

надеюсь, это поможет

...