Загрузка данных


async def script(urls_list: list[str]) -> dict[str, dict[str, dict[int, any]]]:
    result = {}

    iter = 0

    async def worker():
        nonlocal iter
        while true:
            try:
                url = urls_list[iter]
                iter += 1
                result[url] = await proccess_url(url)
            except IndexError:
                return
            except:
                ... # обработка внутренних ошибок url

    asyncio.gather(*([worker()] * WORKERS_COUNT))
    rerutn result



# результат запуска
# worker_id=0, iter=0, url=url-0
# worker_id=2, iter=2, url=url-2
# worker_id=2, iter=4, url=url-4
# worker_id=2, iter=5, url=url-5
# worker_id=0, iter=3, url=url-3
# worker_id=1, iter=1, url=url-1
# worker_id=2, iter=6, url=url-6
# worker_id=0, iter=7, url=url-7
# worker_id=1, iter=8, url=url-8
# worker_id=2, iter=9, url=url-9