TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4468 2.75K
Requests для начинающих + пара фишек для адептов

requests является де-факто стандартом для HTTP-запросов в Python. Она упрощает взаимодействие с веб-сервисами, предоставляя интуитивно понятный интерфейс для отправки запросов и обработки ответов.

Инструмент не входит в стандартную библиотеку ЯП, поэтому его необходимо установить отдельно:


python -m pip install requests

Рекомендуется устанавливать внешние пакеты в виртуальное окружение, чтобы избежать конфликтов зависимостей.


Основные методы

Для получения данных с сервера используется метод GET:


import requests

response = requests.get('https://example.com')
print(response.text)


Для отправки данных на сервер используется метод POST:


import requests

data = {'key': 'value'}
response = requests.post('https://example.com', data=data)
print(response.text)



Ответы сервера

Статус-код запроса можно получить так:


print(response.status_code) # 200 — успешный запрос


Если ответ содержит JSON-данные, их можно преобразовать в Python-объект с помощью метода json():


data = response.json()



Параметры запроса (params)

Параметры запроса можно передавать в виде словаря в params:


params = {'q': 'python'}
response = requests.get('https://example.com/search', params=params)


Requests автоматически кодирует параметры и добавляет их к URL.



Заголовки (Headers)
Заголовки запроса можно передавать в виде словаря в параметре headers:


headers = {'User-Agent': 'my-app'}
response = requests.get('https://example.com', headers=headers)


Это полезно для указания типа контента, авторизации и других параметров.


Другие HTTP-методы

Requests поддерживает все основные HTTP-методы:

🔘requests.put() — для обновления;
🔘requests.delete() — для удаления.
🔘requests.head() — для получения только заголовков ответа;
🔘requests.options() — для получения поддерживаемых сервером методов.


Подготовка запроса

Requests позволяет подготовить запрос:


from requests import Request, Session

req = Request('GET', 'https://example.com', params={'q': 'python'})
prepared = req.prepare()

with Session() as session:
response = session.send(prepared)
print(response.text)



Это полезно, если необходимо многократно отправлять одинаковые запросы с разными параметрами.


Аутентификация

Requests поддерживает базовую аутентификацию с помощью параметра auth:


from requests.auth import HTTPBasicAuth

response = requests.get('https://example.com', auth=HTTPBasicAuth('user', 'pass'))


Также поддерживаются другие методы аутентификации, такие как OAuth.


Безопасность

Requests по умолчанию проверяет SSL-сертификаты при работе с HTTPS. Если необходимо отключить проверку (не рекомендуется в производственной среде), можно использовать параметр verify:


response = requests.get('https://example.com', verify=False)



Повторные попытки и сессии

Для улучшения производительности и управления соединениями рекомендуется использовать сессии:


with requests.Session() as session:
response = session.get('https://example.com')
print(response.text)


Сессии позволяют повторно использовать соединения и сохранять параметры между запросами. Для автоматических повторных попыток в случае неудачи можно использовать библиотеку urllib3 вместе с Requests.

#основы
@zen_of_python
  • 👍 10
  • ❤ 3
More from @zen_of_python
  1. Sep 26, 2026Как собирать динамические фильтры Django через Q-объекты Q() представляет условие для SQL-…
  2. Sep 26, 2026Почему str.splitlines() видит больше переносов, чем чтение файла У Python два разных понят…
  3. Sep 26, 2026Как вручную разрешить ленивый импорт в Python У объекта, созданного через lazy import json…
  4. Sep 25, 2026Почему Python предупреждает о последовательности \477 и как это исправить В строках Python…
  5. Sep 25, 2026Как запускать Python-код в песочнице на MicroPython и WebAssembly В проектах Саймона Уилли…
  6. Sep 25, 2026Как emojet ускоряет работу с эмодзи в Python Библиотека emojet преобразует названия в эмод…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →