2011-11-27 5 views
8

Sto lavorando a un progetto di scraping del sito Web utilizzando Selenium in Python. Quando apro la home page tramite un browser, si apre correttamente.Passare l'user-agent tramite webdriver in Selenium

Tuttavia, quando provo ad aprire la pagina Web tramite webdriver() in Selenium, si apre una pagina completamente diversa.

Penso che sia in grado di rilevare lo user-agent (non è sicuro come si chiama) ed è in grado di controllare le proprietà del browser o qualcosa del genere.

È possibile passare le proprietà attraverso lo webdriver() in modo che venga caricata la home page corretta.

Grazie

+0

Cosa intendi con "apre una pagina completamente diversa"? Un URL diverso o l'elemento sul sito è diverso? – maguschen

risposta

26

La modifica del programma utente nella versione python del webdriver avviene modificando il profilo del browser. L'ho fatto solo per webdriver.Firefox() passando un parametro profilo. È necessario effettuare le seguenti operazioni:

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

Ogni volta che si desidera cambiare l'user agent è necessario riavviare il browser web (ad esempio chiamare driver=webdriver.Firefox(profile) di nuovo)

Se non siete sicuri di ciò che il vostro user agent stringa è eseguire una ricerca per "quale è il mio agente utente" su un browser che visualizza correttamente la pagina e basta copiarlo e incollarlo.

La speranza che lo ordina.

0

Supponendo che l'user-agent è il problema, in Java è possibile modificare in questo modo:

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

consultare la documentazione here.