asyncio + aiohttp Когда нужно сделать десятки или сотни запросов к API или сайтам, обычный
requests становится узким местом. Асинхронный подход позволяет обрабатывать множество соединений параллельно и резко ускоряет работу.
import asyncio
import aiohttp
urls = [
"https://example.com",
"https://httpbin.org/get",
"https://api.github.com"
]
async def fetch(session, url):
async with session.get(url) as resp:
return url, await resp.text()
async def main():
async with aiohttp.ClientSession() as session:
tasks = [fetch(session, url) for url in urls]
for result in await asyncio.gather(*tasks):
print(f"✅ {result[0]} → {len(result[1])} символов")
asyncio.run(main())
📌 Что это даёт
⚡️ Сотни запросов обрабатываются почти одновременно
📉 Меньше блокировок — больше пропускная способность
🔧 Легко масштабируется для парсеров, мониторинга сервисов, чатов и API-интеграций
🔥 Этот приём используют в реальных продакшн-системах, где нужно работать с большим количеством сетевых соединений.