- Что такое запросы Python?
- Зачем использовать запросы Python?
- Как установить запросы Python?
- Отправка запросов на получение и публикацию
- Передача параметров в URL
- Код состояния
- Содержание ответа
- Загрузка файлов из нескольких частей
- Файлы cookie и заголовки
- Объект сеанса
- Ошибки и исключения
Что такое запросы Python?
Запросы Python были написаны Кеннетом Райтцем и лицензированы под apache 2.0. Это удобная для человека HTTP-библиотека, как упоминается на официальной странице документации. Он прост в использовании и в основном используется для выполнения всевозможных HTTP-запросов. Ниже приведены несколько дополнительных функций, которые поставляются с запросами:- Сохранение активности и пул соединений
- Международные домены и URL-адреса
- Сеансы с сохранением файлов cookie
- Проверка SSL в стиле браузера
- Автоматическое декодирование контента
- Базовая / дайджест-аутентификация
- Элегантные файлы cookie типа 'ключ-значение'
- Автоматическая декомпрессия
- Тела ответов Unicode
- Поддержка прокси HTTP
- Загрузка нескольких файлов
- Потоковое скачивание
- Таймауты подключения
- Разделенные запросы
Зачем использовать запросы Python?
Когда дело доходит до того, почему мы используем запросы Python? Причина довольно проста. При использовании запросов python вам не нужно вручную добавлять запросы к своим URL-адресам и кодировать данные публикации. Это упрощает нашу работу при отправке HTTP-запросов любого типа.Теперь, когда мы знакомы с запросами Python и почему мы используем их в Python, давайте попробуем понять, как мы собираемся устанавливать запросы в нашем проекте или системе.Как установить запросы Python?
Установка очень проста. Если в вашей системе установлена программа установки pipenv, вы можете просто запустить следующую команду в терминале.Запросы на установку $ pip
Это установит библиотеку запросов в вашу систему. Есть еще один подход к установке запросов. Если вы используете pycharm, вы можете добавить запросы к интерпретатору проекта в настройках. Он служит той же цели, что и терминал, в случае установки библиотеки в нашем проекте.Теперь, когда мы закончили установку, давайте попробуем понять, как мы будем делать запросы на получение и публикацию в python.Как делать запросы на получение и публикацию?
Запрос на получение в основном используется для запроса данных с сервера. Ниже приведен синтаксис запроса на получение.запросы на импорт res = requests.get ('url') #res здесь является объектом ответа.Почтовый запрос используется для отправки данных для обработки на сервер. Ниже приведен синтаксис отправки почтового запроса.
полезная нагрузка запросов на импорт = {'key1': 'value1'} res = requests.post ('url', data = payload)Теперь, когда мы знаем, как создавать запросы на получение и публикацию, давайте посмотрим, как мы можем передавать параметры URL-адресу с помощью запроса получения.
Передача параметров в URL
Передача параметров в URL так же проста, как запрос на получение. Ниже приведен пример передачи параметров URL-адресу.импортные запросы payload = {'key1': 'value1', 'key2': 'value2'} res = requests.get ('url', params = payload) print (res.url) # это напечатает url с параметрами прошел через запрос на получение.
Код состояния
Мы также можем проверить код состояния, следующий код для проверки кода состояния:
запросы на импорт res = requests.get ('url') print (res.status_code ())Если код возвращает 200, это означает, что ошибки нет и с запросом все в порядке. Если мы сделаем неверный запрос, код вернет код, например 404 или 505, что вызовет ошибку http.
Содержание ответа
Мы также можем прочитать содержимое ответа сервера. Библиотека автоматически декодирует контент с сервера.запросы на импорт res = requests.get ('url') print (res.content)
Запросы также имеют встроенный декодер json.
запросы на импорт res = requests.get ('url') print (res.json ()) # это получит ответ в формате json
Загрузка файлов из нескольких частей
С помощью запросов очень легко загружать файлы, состоящие из нескольких частей.запросы на импорт files = {'file': open ('filename', 'rb')} res = requests.post ('url', files = files) print (res.text)Для отправки нескольких файлов мы укажем несколько файлов в параметре files.
Файлы cookie и заголовки
Мы можем просматривать заголовки ответов и файлы cookie сервера с помощью объекта ответа. Ниже приведен код для просмотра заголовков сервера.запросы на импорт res = requests.get ('url') print (res.headers)Мы также можем передавать настраиваемые заголовки в URL-адрес. Давайте посмотрим на код.
заголовки запросов на импорт = {'key1': 'value1'} res = requests.get ('url', headers = headers) print (res.headers)Запросы не изменяют свое поведение на основе настраиваемых заголовков. Они просто передаются в последний запрос. печенье также можно просмотреть с помощью объекта ответа.
запросы на импорт # для передачи наших собственных файлов cookie мы можем использовать параметр cookie cookie = dict (cookie = 'working') res = requests.get ('url', cookie = cookie) print (res.text)
Файлы cookie возвращаются в RequestCookieJar, который действует как словарь, но также предлагает более полный интерфейс, подходящий для использования в нескольких доменах или путях.
Объект сеанса
Объект сеанса позволяет сохранять определенные параметры в запросах.- Сохраняет файлы cookie во всех запросах, сделанных из экземпляра сеанса
- Используйте пул соединений urllib3
- Значительный прирост производительности
- Объект сеанса имеет все методы основного API запросов.
s = requests.session () s.get ('url') res = s.get ('url') печать (res.text)
Ошибки и исключения
Ниже приведены ошибки и исключения, возникающие в запросе Python.- В случае проблемы с сетью запросы вызовут исключение ConnectionError.
- Response.raise_for_status () вызовет ошибку HTTP при неудачном коде состояния.
- Если есть тайм-аут, он вызовет исключение тайм-аута
- Исключение TooManyRedirects возникает, если запрос превышает настроенное максимальное количество перенаправлений.