Обнаружен браузер Chrome, запущенный через ChromeDriver

Я пытаюсь использовать селен хромедрайвер в Python для веб-сайта www.mouser.co.uk. Тем не менее, он обнаружен как бот с первого выстрела.

У кого-нибудь есть объяснение этому? далее код, который я использую:

options = Options()
options.add_argument("--start-maximized")
browser = webdriver.Chrome('chromedriver.exe',chrome_options=options)
wait = WebDriverWait(browser, 30)
browser.get('https://www.mouser.co.uk')

1 ответ

Решение

Я пытался получить доступ к URL https://www.mouser.co.uk/ с определенными chrome.options, но они были обнаружены и были перенаправлены на страницу " Прощение нашего прерывания".

  • Блок кода:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    options = Options()
    options.add_argument("start-maximized")
    options.add_argument("disable-infobars")
    options.add_argument("--disable-extensions")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("https://www.mouser.co.uk")
    myElement = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='1_lnkLeftFlag']")))
    driver.execute_script("arguments[0].click();", myElement)
    

Теперь на странице прощения Наше Прерывание вы найдете <body> тег содержит:

  • Атрибут класса dist-GlobalHeader
  • Атрибут класса dist-PageWrap

Что является четким свидетельством того, что веб-сайт защищен поставщиком услуг управления ботами Distil Networks, и навигация ChromeDriver обнаруживается и впоследствии блокируется.


Distil

В соответствии со статьей Distil.it...

Distil защищает сайты от автоматических ботов, которые следят за поведением сайта и выявляют закономерности, характерные для скребков. Когда Distil идентифицирует вредоносного бота на одном сайте, он создает черный профиль поведения, который развертывается для всех его клиентов. Что-то вроде брандмауэра бота, Distil обнаруживает шаблоны и реагирует.

В дальнейшем,

"One pattern with **Selenium** was automating the theft of Web content" Об этом заявил генеральный директор Distil Рами Эссаид в интервью на прошлой неделе. "Even though they can create new bots, we figured out a way to identify Selenium the a tool they're using, so we're blocking Selenium no matter how many times they iterate on that bot. We're doing that now with Python and a lot of different technologies. Once we see a pattern emerge from one type of bot, then we work to reverse engineer the technology they use and identify it as malicious".


Ссылка

Вы можете найти подробное обсуждение в разделе Может ли веб-сайт определить, когда вы используете селен с хромедрайвером?

Пробовал все, что здесь предлагалось, ничего не работало. У меня работал только этот модуль:

https://github.com/ultrafunkamsterdam/undetected-chromedriver

Я использовал его, чтобы получить веб-сайт, на котором был обнаружен бот. Я пытался использовать все методы, предложенные в предыдущих ответах, но безуспешно. Использование этого модуля очень простое и описано в самом репозитории git.

Боковое примечание: модераторы несколько раз удаляли предыдущие редакции этого поста без уважительной причины ИМХО. Я надеюсь, что это правка пройдет. Удачи.

Другие вопросы по тегам