Requests Python: интерактивный самоучитель HTTP-запросов с практикой в браузере
HTTP для людей: от первого GET до API-клиента с повторами и кэшем
Редакция Питоники

requests — самая скачиваемая HTTP-библиотека Python и первый инструмент любого, кто работает с сетью: API, парсинг, вебхуки, интеграции. Синтаксис настолько прост, что GET-запрос — одна строка, но за этой простотой стоят статус-коды, заголовки, cookies и сессии, которые надо понимать.
Десять уроков ведут от первого GET до настоящего API-клиента: параметры и заголовки, коды ответа и raise_for_status, три лица ответа (text, content, json), скачивание файлов, POST-формы, User-Agent, cookies и Session, авторизация токенами, таймауты и повторные попытки. Финал — аккуратный клиент погодного API с повторами и кэшем.
Сеть из браузерной песочницы недоступна — и мы этого не прячем: механику каждого запроса разбирают на настоящих стандартах Python (urlparse, json, base64, cookies), а реальный код requests идёт рядом, готовый для твоего компьютера. Так ты понимаешь, ЧТО делает библиотека, а не только какой метод вызвать.
Чему научитесь
- Читать структуру HTTP-запроса и ответа без страха
- Строить GET-запросы с параметрами и правильными заголовками
- Различать коды ответа и не пропускать ошибки через raise_for_status
- Выбирать между text, content и json при разборе ответа
- Скачивать файлы и сохранять их на диск
- Отправлять формы и JSON через POST
- Держать cookies и переиспользовать соединение через Session
- Авторизоваться Basic-ом и Bearer-токенами
- Сделать API-клиент с таймаутами, повторами и кэшем
Для кого: Тем, кто знает основы Python и хочет работать с API, парсингом и интеграциями: сети без requests никуда.
- Урок 1. Библиотека requests Python с нуля: первый GET-запросПервый GET-запрос на requests: что улетает по сети, что возвращается и как разобрать ответ на статус, заголовки и тело — механику проверяем прямо в браузере.35 мин
- Урок 2. Параметры GET-запроса: params и query string в requestsQuery string глазами Python: словарь params превращается в ?city=Moscow&days=3, русские буквы — в проценты, а parse_qs разворачивает всё обратно. Каждый шаг исполняется на странице.40 мин
- Урок 3. Коды ответа HTTP: status_code, ok и raise_for_status в requestsСемейства кодов ответа, свойство ok и метод raise_for_status: узнаём, что сервер на самом деле сказал, и ловим HTTPError — механику проверяем прямо на странице.40 мин
- Урок 4. Ответ requests: text, content и json — три лица ответаУ ответа requests три лица: .text — строка, .content — байты, .json() — готовый объект Python. Разбираемся, когда какое брать и откуда берутся кракозябры.35 мин
- Урок 5. Скачивание файлов в requests: картинка, архив и запись на дискСкачивание в requests — это два шага: получить байты из .content и записать их в файл в бинарном режиме. Для больших файлов включаем stream=True.40 мин
- Урок 6. POST-запросы в requests: формы data, JSON и загрузка файловPOST отправляет данные в теле запроса: формы через data, JSON через json=, файлы через files=. Разбираем, чем они отличаются и где теряют данные.40 мин
- Урок 7. Заголовки и User-Agent в requests: притворяемся браузеромСервер судит о тебе по заголовкам: ставим свой User-Agent, просим нужный формат через Accept и читаем ответные заголовки из r.headers.35 мин
- Урок 8. Cookies и Session в requests: сессия, которая помнитРазбираем, как сервер узнаёт клиента между запросами: Set-Cookie и Cookie руками на http.cookies, затем Session в requests — общие заголовки, куки-банка и keep-alive.35 мин
- Урок 9. Авторизация в requests: Basic, Bearer-токены и API-ключиУчимся представляться серверу: Basic-авторизация с разбором base64 по байтам, Bearer-токены, API-ключи — и правило хранения секретов вне кода.35 мин
- Урок 10. Проект: API-клиент на requests с таймаутами, повторами и кэшемФинальный проект: собираем всё, что знаем про requests, в один класс WeatherClient — таймаут, экспоненциальные повторы, кэш и аккуратные исключения.45 мин