Junior — Middle
66
Как эффективно выполнить отправку большого количества параллельных HTTP-запросов в Python?
Ответ от нейросети
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-задач.
Также стоит учитывать ограничения сервера и сети, чтобы не перегрузить их слишком большим количеством одновременных запросов.