Асинхронные запросы aiohttp для API в Python

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythonaiohttpasyncio

👁 В Python можно значительно ускорить выполнение программы, если использовать асинхронность для работы с API. Модуль aiohttp в сочетании с asyncio позволяет отправлять несколько запросов одновременно, эффективно используя ресурсы и сокращая время ожидания.

📝 Пример отправки нескольких запросов:

import asyncio
import aiohttp

async def fetch_url(url, session):
    async with session.get(url) as response:
        return await response.text()

async def fetch_all_urls(urls):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch_url(url, session) for url in urls]
        return await asyncio.gather(*tasks)

def main():
    urls = [
        'https://jsonplaceholder.typicode.com/posts/1',
        'https://jsonplaceholder.typicode.com/posts/2',
        'https://jsonplaceholder.typicode.com/posts/3'
    ]
    results = asyncio.run(fetch_all_urls(urls))
    for result in results:
        print(result[:100])  # Печать первых 100 символов

if name == 'main':
    main()

📌 Как это работает:

  • Используется asyncio для асинхронного выполнения запросов, что позволяет не блокировать выполнение программы при ожидании ответа.
  • aiohttp используется для асинхронных HTTP-запросов, улучшая производительность при работе с большим количеством запросов.
  • asyncio.gather() собирает все задачи и выполняет их одновременно, что сильно ускоряет выполнение программы.

❗️ Подходит для проектов, где необходимо параллельно собирать данные с нескольких API, например, при интеграции с внешними сервисами или агрегации данных.

tags: #python #автоматизация #разработка

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот кода на тёмном фоне: пример асинхронных запросов в Python (asyncio + aiohttp), показаны fetch_all_urls и asyncio.run; логотип RECURA.
Код‑пример асинхронных запросов в Python с использованием aiohttp и asyncio.

Читайте так же