我有一个脚本,我试图通过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)
这是来自普通浏览器的请求 header 的示例:
最佳答案
您需要设置用户代理。 看这个SO ANSWER
关于使用set_preference
。
关于python - 谷歌阻止 Selenium Webdriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703970/