Как выполнить GET-запрос к веб-странице с помощью Python?

«Как выполнить GET-запрос к веб-странице с помощью Python?» — вопрос из категории Тестирование, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Почему requests?

  • Простота: Отправка запроса и получение ответа выполняются в одну строку.
  • Надежность: Библиотека хорошо документирована и широко используется в индустрии.
  • Функциональность: Поддерживает сессии, аутентификацию, обработку JSON и многое другое.

Пример GET-запроса:

import requests

# URL может указывать на любой ресурс, включая API тестовой сети (Testnet)
url = "https://api.github.com"

try:
    # Выполняем GET-запрос
    response = requests.get(url, timeout=5) # timeout в секундах

    # Проверяем, что запрос был успешным (статус код 2xx)
    response.raise_for_status()

    # Выводим базовую информацию
    print(f"Status Code: {response.status_code}")
    # .json() автоматически декодирует ответ из JSON в словарь Python
    data = response.json()
    print(f"Response JSON: {data}")

except requests.exceptions.RequestException as e:
    # Обработка ошибок сети, таймаутов, некорректных URL
    print(f"An error occurred: {e}")

Ключевые моменты:

  • Объект response: Содержит всю информацию об ответе: status_code, headers, text (содержимое в виде строки), json() (декодированное JSON-содержимое).
  • Обработка ошибок: Всегда оборачивайте запросы в блок try...except, чтобы корректно обрабатывать сбои сети или ошибки сервера.
  • Testnet: Если вам нужно обратиться к API тестовой сети (например, блокчейна), просто укажите соответствующий URL в переменной url. Метод запроса останется тем же.