3.1 Модуль requests
Для базової роботи з інтернетом у Python є бібліотека requests. Вона надає зручний інтерфейс для роботи з мережею, дозволяючи відправляти HTTP-запити та отримувати відповіді з мінімальними зусиллями.
Ця бібліотека не постачається разом з Python, тому перед її використанням тобі потрібно встановити її за допомогою менеджера пакетів.
Відкрий свій термінал і напиши:
pip install requests
Після встановлення бібліотеки ти можеш використовувати модуль requests у своїх проектах. Наприклад, ось так ти можеш визначити свою зовнішню IP-адресу:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # Виводить статус код відповіді
print(response.json()) # Виводить JSON-відповідь
Тут ми відправили запит на сервіс (сайт) ip.jsontest.com, який повертає JSON-об'єкт з IP-адресою, з якої до нього прийшов запит. Саме звернення і отримання відповіді виконується в один рядок — це дуже зручно. В інших рядках ми просто роздрукували відповідь сервера.
В прикладі вище ми викликали метод get(), нижче я розповім про цей метод і про інші методи об'єкта requests.
3.2 Список методів
У об'єкта requests є методи на всі випадки життя, а вірніше по одному методу на кожен тип HTTP-запиту.
| Метод | Опис |
|---|---|
requests.get() |
Відправляє GET-запит для отримання даних з сервера. |
requests.post() |
Відправляє POST-запит для відправки даних на сервер. |
requests.put() |
Відправляє PUT-запит для оновлення даних на сервері. |
requests.delete() |
Відправляє DELETE-запит для видалення даних з сервера. |
requests.head() |
Відправляє HEAD-запит для отримання заголовків без тіла відповіді. |
requests.options() |
Відправляє OPTIONS-запит для отримання підтримуваних методів і параметрів сервера. |
requests.patch() |
Відправляє PATCH-запит для часткового оновлення даних на сервері. |
requests.request() |
Основний метод для відправки всіх типів HTTP-запитів. |
Нижче ми розглянемо найосновніші з них.
3.3 Відправка GET-запиту та POST-запиту
GET-запит зазвичай складається тільки з URL, або ж може містити додатковий рядок параметрів.
1. Відправка чистого GET-запиту
GET-запит використовується для отримання даних з сервера. Обов'язковим параметром є URL, на яку і відправляється запит.
Приклад:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # Виводить статус код відповіді
print(response.json()) # Виводить JSON-відповідь
2. Відправка GET-запиту з параметрами
Також URL може містити додаткові параметри у вигляді рядка key=value&key2=value2&…
У нашому випадку параметри передаються у вигляді словника та змінної params:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. Відправка POST-запиту
POST-запит може містити тіло запиту: текст, JSON або навіть картинку.
Приклад:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 Відправка PUT-запиту та DELETE-запиту
1. Відправка PUT-запиту
PUT-запит використовується для оновлення даних на сервері.
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. Відправка DELETE-запиту
DELETE-запит використовується для видалення даних з сервера.
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
Щоб краще розуміти суть GET, POST, PUT і DELETE запитів, тобі потрібно прочитати лекції про пристрій мережі, інтернет, веб і HTTP. Усе це чекає тебе в недалекому майбутньому.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ