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
. Все это вас ждет в недалеком будущем.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ