<MyRusakov.ru />

Программирование на Python с Нуля до Гуру

Программирование на Python с Нуля до Гуру

Данный курс научит Вас программировать на языке Python, который крайне желательно знать любому, кто хоть иногда имеет дело с компьютерами. Курс состоит из 6 разделов, в которых Вы с нуля освоите этот язык и сможете создавать самые разные программы для самых разных задач любой сложности.

К курсу прилагается множество упражнений и все исходники из уроков.

Наконец, Вы получите ещё несколько бонусов: "Создание калькулятора на Python", "Создание игры на Python" и "Правильная работа со справочником".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Работа с сетью в Python

Работа с сетью в Python

Библиотека requests является стандартом де-факто для выполнения HTTP-запросов в Python. Она прячет сложности выполнения сетевых запросов за маской красивого и простого API, чтобы вы могли непосредственно сосредоточиться использовании данных в разрабатываемом приложении.

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

Установим библиотеку requests . Для этого выполните в консоли следующую команду:

pip install requests

Подключаем так:

import requests

Теперь, когда мы все настроили, пришло время научиться делать GET-запросы.

Одним из наиболее распространенных HTTP методов является GET. Метод GET предназначен для получения данных из указанного ресурса. Чтобы сделать GET-запрос , вызовите requests.get():

>>> requests.get('https://srs.myrusakov.ru')
<Response [200]>

Ответ запроса

Response - является объектом, возвращаемым в результате запроса. Давайте сделаем тот же запрос еще раз, но на этот раз сохраним возвращаемое значение в переменной, чтобы лучше познакомиться с его атрибутами и поведением:

>>> response = requests.get('https://srs.myrusakov.ru')

В этом примере мы сохранили в переменной с именем response возвращаемое функцией get() значение, которое является экземпляром объекта Response. Теперь мы можем использовать response чтобы увидеть информацию о результатах запроса.

Коды состояния

Первым видом информации, которую мы можем получить из Response является код состояния. Код состояния информирует нас о статусе запроса.

Например, статус 200 OK означает, что запрос был успешным, а статус 404 NOT FOUND означает, что файл не найден. Это самые базовые коды состояний.

Чтобы увидеть код состояния, который вернул сервер надо выполнить следующий код:

>>> response.status_code

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

Иногда можно использовать статус кода для принятия решений в коде:

if response.status_code == 200:
    print('Успех!')
elif response.status_code == 404:
    print('Нет ничего')

Библиотека requests еще более упрощает процесса условного выбора. Если вы используете экземпляр Response в условном выражении, он оценивается как True (Правда), если код состояния между 200 и 400 , и False (Ложь) в противном случае.

Таким образом, вы можете упростить последний пример, переписав оператор if :

if response:
    print('Успех!')
esle:
    print('Нет ничего')

Имейте в виду, что этот метод не проверяет, что код состояния ровно равен 200. Причиной этого является то, что другие коды состояния в диапазоне от 200 до 400 , такие как 204 NO CONTENT и 304 NOT MODIFIED , также считаются успешными в том смысле, что они обеспечивают некоторый осуществимый ответ.

Например, 204 сообщает вам, что ответ был успешным, но в теле сообщения нет содержимого для возврата.

Поэтому убедитесь, что вы используете этот удобный способ записи, только если вы хотите узнать, был ли запрос в целом успешным, а затем, при необходимости, обработайте ответ соответствующим образом на основе кода состояния.

Допустим, вы не хотите проверять код состояния ответа в операторе if . Вместо этого вы хотите вызвать исключение, если запрос был неудачным. Вы можете сделать это с помощью .raise_for_status() :

import requests
from requests.exceptions import HTTPError

for url in ['https://myrusakov.ru', 'https://myrusakov.ru/net-takogo-faila']:
    try:
        response = requests.get(url)

        # если запрос выполнился успешно ничего не происходит
        # в противном случае ошибка
        response.raise_for_status()
    except HTTPError as error_http:
        print(f'HTTP ошибка: {http_err}')
    except Exception as error_other:
        print(f'Еще какая-то ошибка: {err}')
    else:
        print('Ух ты!')

Если вы вызываете .raise_for_status() , HTTPError будет вызываться для определенных кодов состояний. Если код состояния указывает на успешный запрос, программа продолжит работу без возникновения этого исключения.

Таким образом, Python библиотека requests предоставляет нам очень широкие возможности по работе с сетью. Обязательно рекомендую Вам поэкспериментировать со свойствами объекта Response и тщательно с ними разобраться. На этом на сегодня все.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.