2011-11-27 13 views
8

Pracuję nad projektem skrobania strony przy użyciu Selenium w Pythonie. Kiedy otwieram stronę główną za pomocą przeglądarki, otwiera się ona prawidłowo.Przepuścić agenta użytkownika przez webdriver w Selenium

Ale kiedy próbuję otworzyć stronę przez webdriver() w Selenie, otwiera się zupełnie inna strona.

Myślę, że jest w stanie wykryć user-agent (nie wiem, jak to się nazywa) i jest w stanie sprawdzić właściwości przeglądarki lub coś podobnego.

Czy możliwe jest przekazanie właściwości za pomocą webdriver(), aby załadować prawą stronę główną.

Dzięki

+0

Co masz na myśli, mówiąc "otwiera zupełnie inną stronę."? Inny adres URL lub element witryny wygląda inaczej? – maguschen

Odpowiedz

26

Zmiana klienta użytkownika w wersji pythona w programie webdriver odbywa się poprzez zmianę profilu przeglądarki. Zrobiłem to tylko dla webdriver.Firefox(), przekazując parametr profilu. Trzeba wykonać następujące czynności:

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

każdym razem, gdy chcesz zmienić agenta użytkownika będzie trzeba ponownie uruchomić przeglądarkę internetową (np zadzwonić driver=webdriver.Firefox(profile) ponownie)

Jeśli nie jesteś pewien, w jakim biurem obsługi string jest wyszukiwaniem "co to jest mój klient użytkownika" w przeglądarce, która poprawnie wyświetla stronę i po prostu ją skopiuj i wklej.

Nadzieję, że to sortuje.

0

Zakładając user-agent jest problem, w Javie można go zmodyfikować tak:

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

patrz dokumentacja here.

Powiązane problemy