Cookies (или "куки") — это небольшие текстовые файлы, которые веб-серверы отправляют браузеру пользователя с целью сохранения определенной информации о пользователе. Они часто используются для сохранения настроек, идентификации пользователей, отслеживания их поведения на сайте и других целей.
Когда вы делаете запрос с помощью Requests, можно легко получить cookies из ответа:
import requests
response = requests.get('https://www.example.com/')
print(response.cookies) # выводит все cookies, которые были установлены сервером
Вы также можете отправлять свои cookies серверу:
cookies = {'username': 'john_doe', 'token': '123456789'}
response = requests.get('https://www.example.com/profile', cookies=cookies)
Сессии — это способ сохранения данных между несколькими запросами. Они позволяют вам сохранить определенное состояние (например, данные аутентификации) и использовать его в последующих запросах, что делает взаимодействие с веб-сайтами более эффективным и быстрым.
Преимущества сессий:
Создание сессии с помощью Requests:
session = requests.Session()
Теперь вы можете использовать этот объект сессии для отправки запросов. Cookies и другие параметры будут автоматически сохраняться и использоваться между запросами:
# Установка заголовков для всех запросов в этой сессии
session.headers.update({'User-Agent': 'MyApp/1.0'})
# Отправка запроса с использованием сессии
response1 = session.get('https://www.example.com/page1')
# Cookies, установленные в response1, будут автоматически отправлены в следующем запросе
response2 = session.get('https://www.example.com/page2')
Для закрытия сессии и освобождения ресурсов используйте:
session.close()
Или используйте контекстный менеджер для автоматического закрытия:
with requests.Session() as session:
response = session.get('https://www.example.com/')
Несколько дополнительных моментов, которые могут быть полезными при работе с cookies и сессиями в библиотеке Requests:
expires
или max-age
. После истечения этого срока cookie устаревает и больше не отправляется серверу.response.cookies.get('cookie_name')['expires']
.Cookies и сессии играют ключевую роль в современной веб-коммуникации, позволяя сайтам "запоминать" пользователей и сохранять информацию между запросами. Библиотека Requests предлагает интуитивные и эффективные инструменты для работы с этими компонентами, делая взаимодействие с веб-сайтами проще и более эффективным.
Содержание: