import asyncio
from aiohttp import ClientSession, ClientError
async def check_url(url):
async with ClientSession() as s:
try:
r = await s.head(url)
if r.status != 200:
return url
except ClientError:
return f'error {url}'
URLS = [
'https://ya.ru',
'https://qna.habr.com/',
'https://qna.habr1.com/',
] * 10
async def _main():
fails = await asyncio.gather(*(check_url(url) for url in URLS))
print(fails)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(_main())
loop.close()
Можешь запросить только заголовки, для ограничения одновременных запросов смотри в сторону asyncio.Semaphore