python - 谷歌阻止 Selenium Webdriver

标签 python selenium

我有一个脚本,我试图通过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 的示例:

enter image description here

最佳答案

您需要设置用户代理。 看这个SO ANSWER

关于使用set_preference

关于python - 谷歌阻止 Selenium Webdriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703970/

相关文章:

java - 如何捕获亚马逊产品selenium的xpath

python - Selenium Chromedriver 不导航到 url

python - Tensorflow 条件抛出值错误

python - 删除列中的 ""

python - 最好将项目添加到集合中,还是将最终列表转换为集合?

python - 是否有相当于each_slice的Pandas来对数据帧进行操作

long 类型的 Python 对象没有 Len() 错误?

java - 需要在 Java 方法中传递多个(20+)参数。有什么有效的方法可以做到这一点吗?

python - Selenium:是否可以在两个 xpath 选择之间获取文本?

python - 使用selenium python从不同的html中获取href标签下的链接