es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo el error ‘403 Prohibido’ al utilizar Chrome sin interfaz (headless) con Python Selenium.

Cuando uso el chromedriver regular, mis pruebas se ejecutan sin problemas y obtengo los resultados de la prueba. Cuando intento ejecutar el chrome sin cabeza con python y selenium, obtengo un error ‘403 Forbidden’ en la captura de pantalla y ‘NoSuchElementException: Mensaje: no such element: Unable to locate element:’ en la consola. Pasé todos estos argumentos y aún obtengo el mismo resultado:

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=1920,1080')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--allow-running-insecure-content')
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chrome_options)

También intenté usar from fake_headers import Headers, pero el problema persiste.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error ‘403 Forbidden’ en la captura de pantalla y selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: en la consola al intentar lanzar Chrome sin cabeza con Python y Selenium puede deberse a varios factores. Aquí hay algunas soluciones posibles para solucionar el problema:

    1. Verifique si el sitio web está bloqueando navegadores sin cabeza: Algunos sitios web pueden tener medidas anti-bot implementadas que detectan navegadores sin cabeza y los bloquean. Intente agregar user-agent como un navegador Chrome en los encabezados de la solicitud para evitar dichas comprobaciones.
    chrome_options.add_argument('user-agent=Chrome/83.0.4103.61')
    
    1. Intente agregar las siguientes opciones a ChromeOptions:
    chrome_options.add_argument('--disable-extensions')
    chrome_options.add_argument('--disable-infobars')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument('--no-sandbox')
    
    1. Asegúrese de estar utilizando la última versión de Selenium y ChromeDriver.
    2. Intente usar una versión diferente de ChromeDriver o Selenium si el problema persiste.

    3. Verifique si el elemento que está intentando localizar es visible en la página web. Intente usar esperas explícitas para esperar a que el elemento esté visible.

    4. Verifique si hay errores de JavaScript en el sitio web viendo la consola del navegador.

    5. También puede intentar usar el navegador Firefox en lugar de Chrome.

    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    from selenium.webdriver.firefox.options import Options as FirefoxOptions
    
    firefox_options = FirefoxOptions()
    firefox_options.headless = True
    firefox_binary = FirefoxBinary('/path/to/firefox')
    driver = webdriver.Firefox(firefox_binary=firefox_binary, options=firefox_options)
    

    Si las soluciones anteriores no funcionan, proporcione más detalles sobre el error y el sitio web que se está probando.

Comments are closed.