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.

Cómo manejar una respuesta 406 en Selenium?

Estoy tratando de extraer información de un sitio web utilizando Selenium. Puedo abrir la mayoría de los sitios web, pero hay algunos que me devuelven la respuesta 406 Not Acceptable. En lugar de recibir el sitio web real, solo obtengo un mensaje 406 Not Acceptable en el navegador.

Actualmente estoy usando el siguiente código en Python (en una Mac):

from selenium import webdriver
DRIVER_PATH = '/Users/User123/Downloads/chromedriver 2'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://www.WEBSITE.com/')

Intenté abrir el mismo sitio web con las bibliotecas requests y beautiful soup solo por curiosidad y funcionó (no recibí ese error). Sin embargo, necesito selenium para mi caso de uso debido al contenido dinámico en la página.

Busqué en Google pero no encontré ningún recurso que hable sobre el problema de selenium vs. 406.

¿Alguna idea?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error “406 No aceptable” ocurre cuando el servidor no puede responder con el contenido solicitado por el cliente. Esto puede suceder por varias razones, incluyendo pero no limitado a los encabezados de solicitud del cliente que no son aceptables, la incapacidad del servidor para proporcionar una respuesta en el formato solicitado por el cliente, o los protocolos de seguridad del servidor que prohíben el acceso al contenido.

    Para solucionar este problema al usar Selenium, puedes intentar modificar los encabezados de solicitud enviados por el controlador web al servidor. Puedes hacer esto configurando el encabezado User-Agent para imitar un navegador web común o configurando el encabezado Accept para incluir una gama más amplia de tipos de contenido. Aquí hay un ejemplo de código que modifica el encabezado User-Agent:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    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.36")
    
    DRIVER_PATH = '/Users/User123/Downloads/chromedriver 2'
    driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
    driver.get('https://www.WEBSITE.com/')
    

    Si modificar los encabezados de solicitud no resuelve el problema, también puedes intentar configurar diferentes encabezados Accept o utilizar un controlador web diferente, como Firefox o Edge. Si el problema persiste, puede ser útil ponerse en contacto con el equipo de soporte del sitio web para obtener ayuda.

Comments are closed.