要开始使用Selenium的 Python 客户端,您应该避免解决/绕过google
captcha的问题。
硒
Selenium使浏览器自动化。现在,使用这种功能实现的功能完全取决于个人,但主要是为了通过浏览器客户端自动化Web应用程序以进行测试,并且粗略地讲,它当然不限于此。
验证码
另一方面,验证码(Captcha)(首字母缩写是
……完全自动化的公共图灵测试,告诉计算机和人类分开…… )是一种挑战-响应测试,用于计算以确定用户是否为人类。
因此, Selenium 和 Captcha 具有两个完全不同的目的,并且理想情况下不应用于完成任何相互关联的任务。
话虽如此,recaptcha可以轻松地检测网络流量并将您的程序标识为 Selenium 驱动的 BOT 。
通用解决方案
但是,有一些通用方法可以避免在网络抓取时被检测到:
- 网站可以通过您的 显示器大小 来确定您的脚本/程序的首要属性是。因此,建议 不要 使用常规的视口。
- 如果您需要向网站发送多个请求,请继续对每个请求更改 用户代理 。在这里,您可以找到有关在Selenium中更改Google Chrome用户代理的方法的详细讨论。
- 为了模拟 人类一样 的行为,你可能需要甚至超越脚本执行减慢WebDriverWait和expected_conditions诱导
time.sleep(secs)
。在这里您可以找到有关如何在python中休眠Webdriver毫秒的详细讨论
这个用例
但是,在几个用例中,我们可以使用 Selenium
与reCAPTCHA进行交互,您可以在以下讨论中找到更多详细信息:
__
- 如何使用Selenium和Java单击reCaptcha
- 使用Selenium和VBA Excel的reCaptcha Checkbok的CSS选择器
- 找到reCAPTCHA元素并单击它— Python + Selenium
参考文献
您可以在以下位置找到一些相关的讨论:
- 如何通过Python使用GeckoDriver和Firefox使Selenium脚本无法检测?
- 是否有无法检测到的硒版本?硒真的不能被发现吗?
tl; 博士
- Recaptcha 3如何知道我正在使用硒/ chromedriver?



