Поможет ли антидект браузер или прокси в случаи блокировки по ip

Я написал программу которая проверяет промокоды, используя selenium Python, постоянно вводя их. Но оказалось что сайт такое сразу замечает и отправляет в бан (мне кажется по ip, поскольку регистрации там нету). Я сначала подумал что стоит использовать прокси, но потом вспомнил про антидект браузеры (ещё и про модули, которые помогают скрыться при работе с selenium). И у меня вопрос - помогут ли антидект браузеры в моем случаи или же использовать прокси?


Ответы (1 шт):

Автор решения: Игорь Крикливый

по моему опыту лучшим решением это будет подключить прокси к selenium. Но по моему опыту лучше использовать seleniumwire, ниже код который возможно даст вам ответ на вопрос

    import time
    from seleniumwire import webdriver
    from selenium.webdriver.common.by import By
    
    # Данные для аутентификации
    login = "…"
    password = "…"
    
    # Прокси-адрес и порты
    proxy_address = "…"
    http_port = …
    socks_port = …
    
    # Формируем строку с адресом прокси для HTTP и SOCKS5
    proxy_http = f'http://{login}:{password}@{proxy_address}:{http_port}'
    proxy_socks5 = f'socks5://{login}:{password}@{proxy_address}:{socks_port}'
    
    # Статический User-Agent
    static_user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
    
    # Настройки прокси и User-Agent
    seleniumwire_options = {
        'proxy': {
            'http': proxy_http,
            'https': proxy_http,  # Если прокси поддерживает HTTPS, используйте тот же адрес
            'socks': proxy_socks5,
            'verify_ssl': False,
        },
    }
    
    # Инициализируем драйвер с использованием настроек прокси и User-Agent
    driver = webdriver.Chrome(seleniumwire_options=seleniumwire_options)
    driver.header_overrides = {'User-Agent': static_user_agent}
    
    # Открываем страницу для проверки работы прокси
    driver.get('http://httpbin.org/ip')
    
    # Выводим IP-адрес, который виден через прокси
    print(driver.find_element(By.TAG_NAME, 'body').text)
    time.sleep(10)
    
    # Закрываем браузер
    driver.quit()
    ```

→ Ссылка