2011-11-27 28 views
8

Estoy trabajando en un proyecto de raspado de sitios web usando Selenium en Python. Cuando abro la página de inicio a través de un navegador, se abre correctamente.Pase el user-agent a través de webdriver en Selenium

Pero, cuando intento abrir la página web a través de webdriver() en Selenium, se abre una página completamente diferente.

Creo que es capaz de detectar el user-agent (no estoy seguro de cómo se llama) y es capaz de verificar las propiedades del navegador o algo así.

Es posible pasar las propiedades a través del webdriver() para que se cargue la página de inicio correcta.

Gracias

+0

¿Qué quiere decir con "abre una página completamente diferente"? ¿Una URL diferente o el elemento en el sitio se ve diferente? – maguschen

Respuesta

26

El cambio del agente de usuario en la versión python de webdriver se realiza mediante la modificación del perfil de su navegador. Solo he hecho esto para webdriver.Firefox() pasando un parámetro de perfil. Que tiene que hacer lo siguiente:

from selenium import webdriver 
profile = webdriver.FirefoxProfile() 
profile.set_preference("general.useragent.override","your_user_agent_string") 
driver=webdriver.Firefox(profile) 

Cada vez que desee cambiar el agente de usuario que tendrá que reiniciar el navegador web (es decir, llamar driver=webdriver.Firefox(profile) de nuevo)

Si no está seguro de lo que su agente de usuario string es hacer una búsqueda de "lo que es mi agente de usuario" en un navegador que muestra la página correctamente y simplemente copiar y pegar esa.

Espero que lo ordene.

0

Suponiendo que el usuario-agente es el problema, en Java se puede modificar de esta manera:

FirefoxProfile profile = new FirefoxProfile(); 
profile.addAdditionalPreference("general.useragent.override", "some UA string"); 
WebDriver driver = new FirefoxDriver(profile); 

Véase la documentación here.

Cuestiones relacionadas