
Попробуй таки через aiohttp
 import aiohttp
url_to_scrape = ["http://example.com"]  # Список сайтов 
proxies = ["http://proxy1.com", "http://proxy2.com", "http://proxy3.com"]
async def connector(url, proxies, max_retries=3):
    """
    url: list - список сайтов для коннекта
    proxies: list - список проксей через которые хочешь ходить
    max_retries: int - количество попыток для соединения перед переходом к другому прокси
    """
    headers = {'User-Agent': 'Your User Agent'} # Тут свой набор хедеров вставишь
    # Если сайт всегда будет один - убери начальный for 
    for site in url:
        for proxy_url in proxies:
            retries = 0
            while retries < max_retries:
                pconnect = aiohttp.ProxyConnector.from_url(proxy_url)
                async with aiohttp.ClientSession(connector=pconnect) as session:
                    async with session.get(site, headers=headers) as response:
                        if response.status == 200:
                            print("Ура")
                            break  # попытка успешна - вышли из цикла
                        else:
                            print(f"Сайт недоступен через {proxy_url}, попытка {retries + 1}/{max_retries}")
                            retries += 1
                if retries >= max_retries:
                    print(f"Прокси не отвечает {proxy_url}, переходим к следующему")
await connector(url_to_scrape, proxies)
Ну дальше уже под себя ровняешь что тебе там надо