Вы прочитали 3 из 3 бесплатных методичек сегодня
Безлимит →
Экстракт 26 февраля 2019

Python Requests: полное руководство по HTTP-запросам

Corey Schafer · Corey Schafer Верифицирован 25:00

Практическое руководство по библиотеке Python Requests: HTTP-запросы, загрузка данных, работа с JSON и отправка POST-запросов.

10 тезисов 5 заданий 2 цитаты ⏱ 2 мин чтения 🎯 10 тезисов
YouTube Транскрипт Сохранить
Поделиться: TG WA VK X

Для AI-агентов и LLM

Экстракт доступен в структурированном Markdown. Скачать .md · JSON API · Site index

💡 Ключевые тезисы (10)

1 Requests — самый скачиваемый пакет Python #
Библиотека requests является самым популярным Python-пакетом, и это неслучайно. Она предоставляет простой и интуитивный интерфейс для выполнения HTTP-запросов, заменяя громоздкий встроенный модуль urllib. Простота использования сделала её стандартом де-факто для работы с веб-запросами в Python.
2 GET-запросы — основа взаимодействия с веб-страницами #
GET-запрос позволяет получить содержимое веб-страницы. Метод requests.get() возвращает объект Response, содержащий статус-код, заголовки и тело ответа. Это базовая операция для любого веб-скрапинга или работы с API.
3 Коды состояния HTTP определяют результат запроса #
Каждый HTTP-ответ содержит числовой код состояния: 200 означает успех, 300 — перенаправление, 400 — ошибку клиента, 500 — ошибку сервера. Проверка response.status_code или использование response.ok позволяет корректно обрабатывать результаты запросов в коде.
4 Работа с JSON через встроенный метод .json() #
Объект Response имеет метод .json(), который автоматически парсит JSON-ответ в словарь Python. Это избавляет от необходимости вручную использовать модуль json. Большинство современных API возвращают данные именно в формате JSON.
5 Параметры запроса передаются через словарь params #
Вместо ручного формирования URL-строки с параметрами можно передать словарь в аргумент params метода get(). Requests автоматически кодирует параметры и добавляет их к URL. Это безопаснее и читабельнее, чем конкатенация строк.
6 Загрузка файлов и изображений через response.content #
Атрибут response.content возвращает бинарное содержимое ответа, что позволяет скачивать изображения, PDF и другие файлы. Достаточно записать content в файл в бинарном режиме ('wb'). Это простой способ автоматизировать загрузку медиа-контента.
7 POST-запросы для отправки данных на сервер #
Метод requests.post() позволяет отправлять данные на сервер через аргумент data (словарь с данными формы) или json (для JSON-тела). POST используется для авторизации, отправки форм и создания ресурсов через API. Это вторая по частоте операция после GET.
8 Заголовки запроса настраивают поведение сервера #
Аргумент headers позволяет передать пользовательские HTTP-заголовки: User-Agent, Authorization, Content-Type и другие. Многие API требуют токен авторизации в заголовке. Заголовки также позволяют имитировать запросы браузера при скрапинге.
9 Аутентификация через auth упрощает доступ к API #
Requests поддерживает Basic Authentication через аргумент auth=(username, password). Для OAuth и токенов используются заголовки Authorization. Это позволяет работать с защищёнными API без сторонних библиотек.
10 Таймауты предотвращают зависание программы #
Аргумент timeout задаёт максимальное время ожидания ответа в секундах. Без таймаута запрос может ждать бесконечно, блокируя программу. Всегда рекомендуется устанавливать таймаут при работе с внешними сервисами.

Python Requests: полное руководство по HTTP-запросам

Спикер: Corey Schafer | Длительность: 25:00

Транскрипт

Введение в библиотеку Requests

Библиотека requests позволяет легко выполнять HTTP-запросы для получения информации с веб-сайтов. Это самый скачиваемый пакет Python, и на то есть веские причины — он делает работу с HTTP простой и интуитивной.

Requests предоставляет методы для всех основных HTTP-операций: GET для получения данных, POST для отправки, PUT для обновления и DELETE для удаления. Объект Response, возвращаемый каждым методом, содержит всю информацию об ответе сервера: статус-код, заголовки, тело ответа в текстовом и бинарном виде, а также метод .json() для автоматического парсинга JSON.

Практическое применение

Основные сценарии использования: получение веб-страниц и парсинг данных, работа с REST API, загрузка файлов и изображений, отправка данных форм и JSON, аутентификация на сервисах.

Практические задания

Задание 1: Получение и анализ веб-страницы

Выполните GET-запрос к любому публичному сайту с помощью requests.get(). Выведите статус-код, заголовки ответа и первые 500 символов текста страницы. Проверьте response.ok и response.status_code. Попробуйте запросить несуществующую страницу и обработайте ошибку 404.

Задание 2: Работа с публичным JSON API

Используйте API httpbin.org или jsonplaceholder.typicode.com для практики. Отправьте GET-запрос, получите JSON-ответ методом .json() и извлеките конкретные поля из словаря. Передайте параметры через аргумент params.

Задание 3: Загрузка изображения из интернета

Найдите URL любого изображения. Скачайте его с помощью requests.get() и сохраните на диск через response.content в бинарном режиме записи. Добавьте проверку статус-кода перед сохранением.

Задание 4: Отправка POST-запроса с данными

Отправьте POST-запрос на httpbin.org/post с данными формы через аргумент data, затем через json. Сравните ответы сервера.

Задание 5: Скрипт мониторинга доступности сайтов

Создайте скрипт, который проверяет доступность списка URL с таймаутом 5 секунд и выводит статус каждого сайта.

Лучшие цитаты

«Библиотека requests позволяет нам легко выполнять HTTP-запросы для получения информации с веб-сайтов» — Corey Schafer

«Я считаю, что это самый скачиваемый пакет Python, и на то есть веские причины» — Corey Schafer

🔒

Бесплатный лимит исчерпан

Вы прочитали 3 методичек сегодня. Завтра лимит обновится, или подпишитесь для неограниченного доступа.

🏋️ Практикум

0 / 5 выполнено

Получение и анализ веб-страницы

Выполните GET-запрос к любому публичному сайту с помощью requests.get(). Выведите статус-код, заголовки ответа и первые 500 символов текста страницы. Проверьте response.ok и response.status_code. Попробуйте запросить несуществующую страницу и обработайте ошибку 404.

Работа с публичным JSON API

Используйте API httpbin.org или jsonplaceholder.typicode.com для практики. Отправьте GET-запрос, получите JSON-ответ методом .json() и извлеките конкретные поля из словаря. Передайте параметры через аргумент params и убедитесь, что URL сформирован корректно.

Загрузка изображения из интернета

Найдите URL любого изображения в интернете. Скачайте его с помощью requests.get() и сохраните на диск через response.content в бинарном режиме записи. Проверьте, что файл корректно открывается. Добавьте проверку статус-кода перед сохранением.

Отправка POST-запроса с данными

Отправьте POST-запрос на httpbin.org/post с данными формы через аргумент data. Затем повторите запрос, передав данные как JSON через аргумент json. Сравните ответы сервера: обратите внимание на различия в полях form и json в ответе.

Скрипт мониторинга доступности сайтов

Создайте скрипт, который принимает список URL и проверяет доступность каждого. Используйте таймаут 5 секунд, обрабатывайте исключения requests.exceptions.RequestException. Выводите статус каждого сайта: доступен (200), перенаправление (3xx), ошибка (4xx/5xx) или таймаут.

🎉
Все задания выполнены!
Отлично — знания превращены в навыки

💬 Цитаты (2)

«Библиотека requests позволяет нам легко выполнять HTTP-запросы для получения информации с веб-сайтов (The requests library allows us to easily make HTTP requests to get information from websites)» #

«Я считаю, что это самый скачиваемый пакет Python, и на то есть веские причины (I believe it's the most downloaded Python package and there is good reason for that)» #

Похожие по теме

Читать далее

Мастерство Asynchronous Programming: от основ до высокопроизводительных приложений на Python

Corey Schafer

Мастерство Asynchronous Programming: от основ до высокопроизводительных приложений на Python

Corey Schafer

Понравился экстракт?
Подписывайтесь — лучшие материалы каждую неделю.
Telegram Дайджест →

Поделитесь с коллегами

Telegram ВКонтакте X / Twitter
Открыть в Telegram

Экстракт Знаний в Telegram

Экстракты и дистилляты из лучших YouTube-каналов — сразу после публикации.

Подписаться

Дайджест Экстрактов

Лучшие методички за неделю — каждый понедельник