Блокировки в headless режиме во время работы с яндекс маркетом selenium Python

Час добрый
Давненько уже для личных целей собираю данные с яндекс маркета при помощи связки selenium + python, но возникла необходимость поставить данный парсер на сервер (убунту), в связи с чем возникла проблема:
Для работы селениума на серверах убунту требуется запускать вебдрайвер с headless атрибутом, из-за которого яндекс маркет блокирует подключение выдавая:

<h1 class="content__h1">Доступ к нашему сервису временно запрещён!</h1><p>Возможно, ваш компьютер заражён вредоносной программой, которая автоматически обращается к Яндексу.<br/>Рекомендуем вам проверить компьютер на вирусы или обратиться к администратору вашей сети.</p><p>Если у вас возникли проблемы или вы хотите задать вопрос нашей службе поддержки, пожалуйста, воспользуйтесь <a class="link" href="https://yandex.ru/support/smart-captcha/?unique_key=7b8cc3b0-28e43c2f-731433c2-5f0c6551" onclick="ym(15897442, 'reachGoal', 'support_complain', { 'req_id': '1662718233984152-12123538743980376554' }); return true;">формой обратной связи</a>.</p>
<p>7b8cc3b0-28e43c2f-731433c2-5f0c6551</p>

В принципе ничего неожиданного с учетом того что такая же система защиты у них стоит и для парсинга при помощи post/get запросов, однако есть ли способ обойти данное ограничение в headless режиме браузера? Без данного режима все работает идеально.
Использовать windows server не вариант, т.к. арендовать для такого парсера отдельный сервер не вижу смысла, а запускать каждый раз на запасном ноутбуке не сильно удобно.

Для примера накину код при котором будет возникать блокировка:

    current_path = os.getcwd()

    options = webdriver.ChromeOptions()
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option("useAutomationExtension", False)
    options.add_argument("--disable-blink-features=AutomationControlled")
    options.add_argument('--no-sandbox')
    options.add_argument('headless')
    options.add_argument(fr"user-data-dir={current_path}\Default")

    driver = webdriver.Chrome(
        executable_path=fr'drivers\chromedriver.exe',
        options=options,
    )
    
    url = 'https://market.yandex.ru/catalog--televizory/26960210/list?hid=90639&local-offers-first=0'

'''
Иногда селениум не может определить статус загрузки страницы.
Для этого ставим паузу в 3 секунды (всегда хватало) и получаем исходники страницы
'''
    try:
        driver.get(url)
    except Exception:
        time.sleep(3) 
                      
    page_source = driver.page_source
    
    if 'Доступ к нашему сервису временно запрещён' in page_source:
        print('[INFO] Доступ запрещен')
    else:
        print('[INFO] Страница успешно загружена')

Если запускать с headless режимом, то выдаст текст из if, но если удалить строку с headless/закомментировать ее, то выдаст принт из else


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