【发布时间】:2014-12-29 12:04:15
【问题描述】:
我有一个脚本,我试图通过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)
这是我在普通浏览器中的请求标头示例:
【问题讨论】:
-
不,我建议删除上面的“类似问题”,因为这是一个完全不同的问题。
-
@David542,您是否在使用某种代理?
-
webdrivers 为渲染的源添加指纹。例如,Firefox 驱动程序注入“webdriver = True”。该问题与发送的用户代理无关。