Revisar su navegador antes de acceder al mensaje al acceder a una aplicación usando ChromeDriver y Chrome usando Selenium

Estoy tratando de automatizar un cierto tipo de rutina y estaba yendo todo bien hasta que el sitio web comenzó a realizar el proceso "Comprobar navegador..." (snapshot abajo). Extrañamente, no lo hizo durante carreras anteriores.

He probado el siguiente código, que "stole" de esta respuesta: Selenium se atascó en “Verificar su navegador antes de acceder a URL”, pero mi navegador todavía no responde:

url= "URL"
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
driver_new = webdriver.Chrome(executable_path = "C:\webdrivers\chromedriver.exe", options = options)
driver_new.get(url)

enter image description here

Pregunta hecha hace 3 años, 5 meses, 0 días - Por devgeek


4 Respuestas:

  • Este mensaje de error...

    cloudflare

    ...cree que Cloudflare han detectado sus solicitudes en el sitio web como bot automatizado y posteriormente le niegan el acceso a la aplicación.


    Solución

    En estos casos, la solución potencial sería utilizar la undetected-chromedriver para inicializar Chrome Browsing Context.

    undetected-chromedriver es un parche Selenium Chromedriver optimizado que no activa servicios anti-bot como Distill Network / Imperva / DataDome / Botprotect.io. Descargue automáticamente el binario del controlador y lo parche.

    • Bloqueo de código:

      import undetected_chromedriver as uc
      from selenium import webdriver
      
      options = webdriver.ChromeOptions() 
      options.add_argument("start-maximized")
      driver = uc.Chrome(options=options)
      driver.get('https://bet365.com')
      

    Referencias

    Usted puede encontrar un par de discusiones detalladas relevantes en:

    Respondida el Dec 16, 2020 a las 11:01 - por bughunterx

    Votos positivos: 0 | Votos negativos: 0

  • Puedes usar time.sleep(6)Eso debería ser suficiente si eres redireccionado después de 5 segundos.

    Respondida el Dec 16, 2020 a las 11:10 - por bitcraftsman

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando con la página que muestra el mensaje "Comprobar navegador..." al utilizar Selenium puede deberse a que el sitio está detectando el uso de un navegador automatizado y está realizando alguna verificación de seguridad para asegurar que un usuario real está accediendo al sitio.

    Para intentar resolver este problema, aquí tienes algunas sugerencias:

    • Cambia el User-Agent: Una forma de evitar la detección de Selenium por parte del sitio es cambiar el User-Agent del navegador que estás utilizando. Puedes agregar un User-Agent personalizado a la configuración de ChromeOptions para que el sitio piense que estás accediendo desde un navegador normal. Por ejemplo:
    python
    options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")
    
    • Usa un perfil de usuario personalizado: Puedes intentar crear un perfil de usuario personalizado en Chrome y utilizarlo en la instancia de WebDriver. Esto puede ayudar a que el sitio no detecte el uso de un navegador automatizado.
    • Evita los métodos obvios de Selenium: Algunas páginas detectan Selenium por métodos como las propiedades `navigator.webdriver` o `chromeOptions.excludeSwitches`. Puedes intentar deshabilitar estas opciones o modificarlas para evitar su detección.
    • Espera un tiempo antes de cargar la página: A veces, agregar un pequeño retraso antes de cargar la página puede ayudar a evitar la detección de Selenium por parte del sitio.
    • Usa un servicio anti-captcha: Si el sitio requiere una interacción manual para pasar la verificación, es posible que necesites utilizar un servicio de anti-captcha para resolver los desafíos de verificación.

    Recuerda que cualquier método que elijas para evitar la detección de Selenium debe cumplir con las políticas del sitio web que estás accediendo y siempre es recomendable explorar opciones alternativas antes de recurrir a prácticas que puedan infringir los términos de uso del sitio.

    Respondida el Dec 17, 2020 a las 11:05 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El sitio web puede estar implementando pruebas de detección de controladores para verificar si un usuario está utilizando un navegador automatizado como ChromeDriver. Para evitar esto, puedes intentar lo siguiente:

    1. Actualiza el controlador de ChromeDriver:

    Asegúrate de estar utilizando la última versión del controlador de ChromeDriver. Las versiones más recientes pueden incluir soluciones para pruebas de detección de controladores conocidas.

    2. Deshabilita la detección de automatización:

    Además del argumento --disable-blink-features=AutomationControlled que estás utilizando, intenta agregar el siguiente argumento:

    
    options.add_argument("--disable-infobars")
    

    Esto deshabilitará la barra de información que aparece cuando el sitio web detecta la automatización.

    3. Utiliza un navegador sin cabeza:

    Ejecuta ChromeDriver en modo sin cabeza, lo que significa que no se abrirá una ventana del navegador visible. Esto puede ayudar a evitar que el sitio web detecte la automatización.

    
    options.add_argument("--headless")
    

    4. Utiliza un perfil de navegador real:

    Crea un perfil de navegador real utilizando Chrome y luego úsalo al inicializar ChromeDriver. Esto puede ayudar a simular el comportamiento de un navegador de usuario real.

    
    options.add_argument("--user-data-dir=/path/to/profile")
    

    5. Utiliza una extensión de navegador:

    Existen extensiones de navegador como Selenium Stealth y Webdriver Manager que están diseñadas para ayudar a eludir las pruebas de detección de controladores.

    6. Oculta la cadena del agente de usuario:

    Los sitios web pueden detectar la automatización basándose en la cadena del agente de usuario del navegador. Intenta enmascarar la cadena del agente de usuario con el argumento --user-agent:

    
    options.add_argument("--user-agent=userAgentString")
    

    7. Utiliza una técnica de espera explícita:

    Después de cargar la página, intenta esperar explícitamente a que desaparezca el mensaje "Comprobar navegador...". Esto le dará tiempo al sitio web para completar sus comprobaciones y te permitirá continuar con tu automatización.

    
    WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.XPATH, "//p[text()='Checking your browser...']")))
    

    Respondida el Dec 17, 2020 a las 11:13 - por Gemini

    Votos positivos: 0 | Votos negativos: 0