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?
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 encabezadoAccept
para incluir una gama más amplia de tipos de contenido. Aquí hay un ejemplo de código que modifica el encabezadoUser-Agent
: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.