Junior — Middle
86
¿Cómo realizar de manera eficiente el envío de una gran cantidad de solicitudes HTTP paralelas en Python?
Respuesta de la IA
sobes.tech AI
Для эффективной отправки большого количества параллельных HTTP-запросов в Python можно использовать асинхронное программирование с библиотекой aiohttp вместе с asyncio. Такой подход позволяет запускать множество запросов одновременно без блокировки основного потока.
Пример:
import asyncio
import aiohttp
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main(urls):
async with aiohttp.ClientSession() as session:
tasks = [fetch(session, url) for url in urls]
results = await asyncio.gather(*tasks)
return results
urls = ["https://example.com" for _ in range(100)]
results = asyncio.run(main(urls))
print(len(results))
Если асинхронность не подходит, можно использовать concurrent.futures.ThreadPoolExecutor для параллелизма с потоками, но это менее эффективно для IO-задач.
Также стоит учитывать ограничения сервера и сети, чтобы не перегрузить их слишком большим количеством одновременных запросов.