Как выполнить GET-запрос к веб-странице с помощью 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. Метод запроса останется тем же.

Ответ 18+ 🔞

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

Так, слушай сюда, ёпта. Есть у нас в Питоне эта библиотека — requests. И это, блядь, не просто библиотека, это как твой личный курьер, который бегает по интернету и таскает тебе всякую хуйню с серверов. Почему именно она? Да потому что, блядь, проще некуда! Одна строка — и ты уже что-то откуда-то получил. Надёжная, как швейцарские часы, и умеет всё, что надо: и сессии поддерживать, и пароли подставлять, и JSON'ы разворачивать. Просто сказка, а не инструмент, в рот меня чих-пых!

Вот смотри, как это выглядит, на примере. Допустим, тебе надо стукнуть по какому-нибудь API, хоть по основному, хоть по тестовой сети (Testnet, блядь, это ж для распиздяев, которые боятся на реальные бабки лезть). Разницы-то, сука, никакой — URL другой подставишь и всё.

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, чтобы если сеть сдохла, таймаут случился или сервер тебе послал нахуй с ошибкой 500 — ты не вылетел в осадок, а культурно обработал это безобразие.

Вот и вся магия. Никакой ебли с низкоуровневыми сокетами, просто берёшь и пользуешься. Как говорится, «взял библиотеку, переписал код и подписал: "Лёша Толстой", блядь!». Ну, в смысле, под своё имя. Короче, доверия к ней — овердохуища. Бери и делай.