Пропустите user-agent через вебдрайвер в Selenium

Я работаю над проектом очистки сайта с использованием Selenium в Python. Когда я открываю домашнюю страницу через браузер, она открывается правильно.

Но когда я пытаюсь открыть веб-страницу через webdriver() в Selenium открывается совершенно другая страница.

Я думаю, что он может обнаружить user-agent(не уверен, как это называется) и может проверить свойства браузера или что-то.

Можно ли передать свойства через webdriver() так что правильная домашняя страница загружена.

Спасибо

2 ответа

Решение

Изменение пользовательского агента в Python-версии webdriver осуществляется путем изменения профиля вашего браузера. Я сделал это только для webdriver.Firefox() путем передачи параметра профиля. Вам нужно сделать следующее:

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

Каждый раз, когда вы хотите изменить пользовательский агент, вам нужно будет перезапустить свой веб-браузер (т.е. driver=webdriver.Firefox(profile) снова)

Если вы не уверены в том, что такое строка вашего пользовательского агента, выполните поиск "что такое мой пользовательский агент" в браузере, который правильно отображает страницу, и просто скопируйте и вставьте ее.

Надеюсь, что это сортирует.

Предполагая, что пользовательский агент является проблемой, в Java вы можете изменить его следующим образом:

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

Смотрите документацию здесь.

Другие вопросы по тегам