Не получается вывести cookies из get запроса в Python

Смотрел в видеоуроке как делаются GET-запросы и отправляются cookies на сервер.

Но вот незадача, выводит ошибку. Я так понял, что куки не вкладываются в гет-запрос, но почему?

import requests

url = 'http://httpbin.org/cookies'
cookies = {'cookies_are': 'working'}
r = requests.get(url, cookies)

print(r.cookies['cookies_are'])

Ответы (2 шт):

Автор решения: svmitin

Пример, который вы пытаетесь воспроизвести берет корни из документации к requests

import requests

url = 'https://httpbin.org/cookies'
cookies = dict(cookies_are='working')

r = requests.get(url, cookies=cookies)
# Вывести полученный ответ как текст
print(r.text)
# Иногда можно работать с ответом как с json, 
# если сервер нам ответил в формате json
print(r.json())
# Именно в таком случае, есть возможность работать с ответом, как с словарем
cookies = r.json()
print(cookies["cookies"]["cookies_are"])

Смысл данного кода в следующем: вы делаете get-запрос на url, который возвращает вам в json-формате кукисы, которые вы же ему и отправили

→ Ссылка
Автор решения: gil9red

Чтобы получить куки из ответа сервера, нужно обратиться к ним через поле cookies:

import requests

rs = requests.get('https://ru.stackoverflow.com')
print(rs.cookies.get_dict())
# {'prov': '<...>'}

Или через сессию, которая помнит куки между запросами:

import requests

session = requests.session()
rs = session.get('https://ru.stackoverflow.com')
print(rs.cookies.get_dict())
print(session.cookies.get_dict())
# {'prov': '<...>'}
# {'prov': '<...>'}

rs = session.get('https://google.ru')
print(rs.cookies.get_dict())
print(session.cookies.get_dict())
# {'1P_JAR': '<...>', 'NID': '<...>'}
# {'1P_JAR': '<...>', 'NID': '<...>', 'prov': '<...>'}

print()
print(session.cookies.get_dict('.google.ru'))
# {'1P_JAR': '<...>', 'NID': '<...>'}
→ Ссылка