El navegador Chrome iniciado a través de ChromeDriver es detectado

Estoy tratando de usar Seled Chromedriver en Python para el sitio web www.mouser.co.uk. Sin embargo, se detecta como bot desde el primer disparo.

introduzca la descripción de la imagen aquí

¿Alguien tiene una explicación para esto? A continuación el código que estoy usando:

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') 

He intentado acceder a la url https://www.mouser.co.uk/ con ciertas opciones de chrome, pero me detectaron y me redirigieron a la página Perdonar nuestra interrupción .

  • Bloque de código:

     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) 

Ahora, al inspeccionar la página Perdón nuestra interrupción , encontrará que la etiqueta contiene:

  • El atributo de clase dist-GlobalHeader
  • El atributo de clase dist-PageWrap

Lo que es una clara indicación de que el sitio web está protegido por el proveedor de servicios de Bot Management Distil Networks y la navegación por ChromeDriver se detecta y bloquea posteriormente.


Destilar

Según el artículo There Really Alhing About Distil.it … :

Distil protege los sitios contra los robots automáticos de raspado de contenido al observar el comportamiento del sitio e identificar patrones propios de los raspadores. Cuando Distil identifica un bot malicioso en un sitio, crea un perfil de comportamiento en lista negra que se implementa para todos sus clientes. Algo así como un firewall bot, Distil detecta patrones y reactjs.

Promover,

"One pattern with **Selenium** was automating the theft of Web content" , dijo el CEO de Distil, Rami Essaid, en una entrevista la semana pasada. "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".


Referencia

Puede encontrar una discusión detallada en ¿Puede un sitio web detectar cuándo está utilizando selenium con chromedriver?