Как использовать библиотеку запросов Python для HTTP

Библиотека requests ​​— популярный модуль Python, который упрощает процесс создания HTTP-запросов. Он абстрагируется от сложности обработки запросов и ответов, упрощая взаимодействие с веб-сервисами и API. В этой статье мы рассмотрим основы использования библиотеки requests, включая отправку различных типов HTTP-запросов и обработку ответов.

Установка библиотеки запросов

Прежде чем использовать библиотеку requests, вам нужно ее установить. Вы можете установить ее с помощью pip, менеджера пакетов Python. Выполните следующую команду в терминале:

pip install requests

Создание простого запроса GET

Самый простой HTTP-запрос — это запрос GET, который извлекает данные с сервера. Вот как можно использовать библиотеку requests ​​для выполнения запроса GET:

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

В этом примере мы отправляем запрос GET к API GitHub и выводим код статуса HTTP и содержимое ответа в формате JSON.

Отправка POST-запросов

Запросы POST используются для отправки данных на сервер, например, отправки форм. Вот как отправить запрос POST с помощью библиотеки requests:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

В этом примере мы отправляем POST-запрос с некоторыми данными формы в тестовую службу httpbin.org и выводим код статуса ответа и его содержимое.

Обработка параметров запроса

Иногда вам нужно включить параметры запроса в ваши запросы. Библиотека requests ​​упрощает это, позволяя вам передавать параметры как словарь:

import requests

params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)

В этом примере мы включаем параметры запроса в запрос GET и выводим конечный URL с включенными параметрами.

Работа с заголовками

Вам может потребоваться включить пользовательские заголовки в ваши запросы, например, для аутентификации или указания типов контента. Вот как добавить заголовки в ваши запросы:

import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())

В этом примере мы включаем заголовок авторизации в запрос к API GitHub и выводим код состояния и содержимое ответа.

Обработка тайм-аутов и исключений

Важно обрабатывать потенциальные проблемы, такие как сетевые тайм-ауты и другие исключения. Библиотека requests ​​позволяет вам указывать тайм-ауты и перехватывать исключения:

import requests
from requests.exceptions import RequestException

try:
    response = requests.get('https://httpbin.org/delay/5', timeout=3)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except RequestException as e:
    print(f'An error occurred: {e}')

В этом примере мы устанавливаем тайм-аут для запроса и перехватываем все возникающие исключения, выводя сообщение об ошибке, если что-то пойдет не так.

Заключение

Библиотека requests ​​— это мощный и удобный инструмент для создания HTTP-запросов в Python. Независимо от того, извлекаете ли вы данные из API, отправляете ли формы или обрабатываете пользовательские заголовки, библиотека requests ​​упрощает выполнение этих задач с помощью всего нескольких строк кода. Освоив основы, описанные в этой статье, вы будете хорошо подготовлены к взаимодействию с веб-сервисами и API в ваших проектах Python.