2014-11-02 2 views
1

У меня есть сценарий, где я пытаюсь найти страницу Google через selenium, чтобы что-то проверить. Всякий раз, когда я открываю Webdriver, я получаю форму искаженную:Google blocking Selenium Webdriver

fp = webdriver.FirefoxProfile() 
driver = webdriver.Firefox(firefox_profile=fp) 
driver.get('https://www.google.com/search?q=asdf') 

Однако, если открыть ту же самую страницу, https://www.google.com/search?q=asdf, в браузере, он отлично работает. Почему Google поднимает капчу, и какие параметры я могу отправить с webdriver, чтобы он выглядел как обычный браузер, и перехват не был поднят?

Заметь, я попытался добавить мой агент пользователя, и он до сих пор вызывает ту же ошибку:

fp = webdriver.FirefoxProfile() 
fp.set_preference("general.useragent.override","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:32.0) Gecko/20100101 Firefox/32.0") 
driver = webdriver.Firefox(firefox_profile=fp) 

Вот пример моих заголовков запроса от обычного браузера:

enter image description here

+0

возможно дубликат [Pass агент пользователя через WebDriver в Selenium] (http://stackoverflow.com/questions/8286127/pass-the-user- агент-через-webdriver-in-selenium) – Blair

+0

Нет, я бы предложил удалить вышеупомянутый «Подобный вопрос», так как это совершенно другая проблема. – David542

+0

@ David542, вы за каким-то прокси? – Anzel

ответ

1

вам нужно установить агент пользователя. См. Это SO ANSWER

при использовании set_preference.

+0

См. Пересмотренный вопрос. – David542

+0

ой, так что вы все еще получаете капчу, даже пропуская пользовательский агент? – Anzel

+0

Вы пробовали просто установить 'Mozilla/5.0' без оставшейся строки? – Anzel

0

пройти все заголовки, используя запросы:

headers = { 
    "Host": "www.google.com", 
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:32.0) Gecko/20100101 Firefox/32.0", 
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Accept-Encoding": "gzip, deflate", 
    "Cookie": "PREF=ID=0df7e6fbda0c09d3:U=bfc47b624b57a0e9:FF=0:TM=1414961297:LM=1414961298:S=2FtJad1BEeJ0M5XS; NID=67=t5zTrFVtG4cLZH2kVmsQEbqDRFJisM86z1s27zx0A6vTR0MWqg69DaY39muso6fIEgqnli7IaEv1Rge1ZxBG0Nr1_3KH1aLu_z1-Ar48oiVDFFSVX4KDRgWnHQWjUfHC", 
    "Connection": "keep-alive", 
    "Cache-Control": "max-age=0", 
} 
+1

Должен ли это быть ответом? Я предлагаю быть более подробным о том, что такое решение, потому что это ясно, как грязь. – Louis

Смежные вопросы