Задать вопрос

Как обойти блокировку selenium'а сайтом?

Раньше удавался парсинг сайта с помощью requests.
Сейчас он начал выдавать пустой html с одним js скриптом.
Попробовал через Selenium - та же картина.

Если открыть его в обычном хроме, произойдет переадресация на нужный url.
Если открыть его в Selenium Chrome то ничего не произойдет.

На stackoverflow прочитал совет, что сайт обнаруживает selenium.
Чтобы обойти проблему, требуется открыть chromedriver.exe в hex редакторе
и изменить все "cdc_" на другую строку.
Попробовал - не помогло. Также пробовал использовать прокси и fakeuseragent вместе с Selenium и измененным файлом chromedriver.

Есть ли способ обойти этот блок?

Сам html не помещается.
Спасибо за помощь

UPD:
Использую следующие настройки:
options.add_argument("--disable-blink-features")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("start-maximized")

driver = webdriver.Chrome(
    executable_path=r"C:\Users\User\Desktop\project_parse_v3\chromedriver.exe",
        options=options
)

driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd('Network.setUserAgentOverride', {
    "userAgent": user_agent.random}
)


РЕШЕНИЕ:
Ответ Максима помог
https://pypi.org/project/selenium-stealth/
Использовал это решение и настройки хрома выше.
Также использовал измененный в Hex редакторе chromedriver, как будет работать с оригиналным не знаю.
  • Вопрос задан
  • 13278 просмотров
Подписаться 17 Простой Комментировать
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
Noizefan
@Noizefan
На будущее - вместо паники запускаем сниффер -> делаем одинаковые запросы удачный и не удачный -> полностью изучаем оба пакета (и все данные кои идут хосту useragent и весь фингерпринт итд) и методом логики определяем что не нравится хосту. Делов останется в львиной половине случаев пофиксить простейшую мелочь в полторы строки вместо припипирования к и без того громоздкому селениуму лишних либ. А то и вовсе "даунгрейд" до requests случится. Крайне маловероятно, что сайт тебя резал из за webgl вендора, правда? учитывая, что раньше "антифрода" и вовсе не было. А то опять отвалится а автор либы видите ли не всё в апдейте предусмотрел х)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы