Як використовувати бібліотеку запитів 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. Бібліотека requests
спрощує виконання цих завдань за допомогою лише кількох рядків коду, якщо ви отримуєте дані з API, надсилаєте форму або обробляєте спеціальні заголовки. Опанувавши основи, описані в цій статті, ви будете добре підготовлені для взаємодії з веб-службами та API у ваших проектах Python.