如何使用 Selenium 和 Python 绕过 Google 验证码?
How can I bypass the Google CAPTCHA with Selenium and Python?
如何使用 Selenium 和 Python 绕过 Google 验证码?
当我尝试抓取某些内容时,Google 给我一个验证码。我可以用 Selenium Python 绕过 Google 验证码吗?
例如 Google reCAPTCHA. You can see this CAPTCHA via this link: https://www.google.com/recaptcha/api2/demo
开始使用 's Python clients, you should avoid solving/bypass Google CAPTCHA。
硒
Selenium 自动化浏览器。现在,你想用这种能力实现什么完全取决于个人,但主要是为了通过浏览器客户端自动化 Web 应用程序以进行测试,当然它当然不限于此。
验证码
另一方面,CAPTCHA(缩写为 ...完全自动化 Public 区分计算机和人类的图灵测试... ) 是一种用于计算以确定用户是否为人类的挑战-响应测试。
因此,Selenium 和 CAPTCHA 有两个完全不同的用途,理想情况下不应用于完成任何相互关联的任务。
话虽如此,reCAPTCHA 可以轻松检测网络流量并将您的程序识别为 Selenium 驱动的 bot。
通用解决方案
但是,有一些通用方法可以避免在网络抓取时被检测到:
- 网站可以确定您的 script/program 的第一个也是最重要的属性是通过您的 显示器大小 。所以建议不要使用常规的Viewport.
- 如果您需要向网站发送多个请求,请继续更改每个请求的 User Agent。在这里你可以找到关于
的详细讨论
- 为了模拟类人行为,您可能需要减慢脚本执行速度甚至超过WebDriverWait and expected_conditions inducing
time.sleep(secs)
. Here you can find a detailed discussion on
这个用例
但是,在一些用例中,我们能够使用 Selenium 与 reCAPTCHA 交互,您可以在以下讨论中找到更多详细信息:
参考资料
您可以在以下位置找到一些相关讨论:
tl;博士
- How does reCAPTCHA 3 know I'm using Selenium/chromedriver?
为了在抓取 Google 时绕过验证码,您必须手动解决验证码并导出 Google 给您的 cookie。现在,每次打开 Selenium WebDriver 时,请确保添加导出的 cookie。 GOOGLE_ABUSE_EXEMPTION cookie 是您要找的那个,但为了安全起见,我会保存所有 cookie。
如果你想在你的抓取中增加一层稳定性,你应该导出几个 cookie 并在每次 ping Google 时随机让你的脚本 select 其中一个 Google。
这些 cookie 的有效期很长,因此您不需要每天都获取新的 cookie。
有关在 Python 和 Selenium 中保存和加载 cookie 的帮助,您应该查看此答案:How to save and load cookies using Python + Selenium WebDriver
清除浏览历史、缓存数据、cookie 和其他网站数据
首先在浏览器中创建一个 Google 帐户 window 由 selenium 打开。
登录您的帐户
wd.get("https://accounts.google.com/signin/v2/identifier?hl=en&passive=true&continue=https%3A%2F%2Fwww.google.com%2F%3Fgws_rd%3Dssl&ec=GAZAmgQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
Thread.sleep(2000);
wd.findElement(By.name("identifier")).sendKeys("Email"+Keys.ENTER);
Thread.sleep(3000);
wd.findElement(By.name("password")).sendKeys("Password"+Keys.ENTER);
Thread.sleep(5000);
然后使用此代码打开任何使用 recaptcha 勾选复选标记的网站
String framename=wd.findElement(By.tagName("iframe")).getAttribute("name");
wd.switchTo().frame(framename);
wd.findElement(By.xpath("//span[@id='recaptcha-anchor']")).click();
您不会找到任何拼图或任何东西。
简单的解决方案是暂停程序 10 秒或更长时间,然后在自动浏览器打开时自行解决 reCAPTCHA,然后程序在 10 秒后启动并执行程序的其余部分,例如单击提交按钮或其他东西
绕过解决它或绕过根本没有得到它?
求解:
- 注册 2captcha、capmonster cloud、deathbycaptcha 等,并按照他们的说明进行操作。他们会给你一个令牌,你用表单传递。
永远得不到它:
- 确保您拥有良好的 IP 声誉(对于 Cloudflare 最重要)。
- 确保你有一个好的浏览器指纹(对 Distil 来说最重要)——我推荐 puppeteer + stealth 插件。
好的,所以有一个简单的 python 脚本可以为您解决验证码问题。
基本上是读音频然后用google助手转成文字粘贴
仅在音频验证码中有效,imahe 验证码 V2 给出的情况最多
免责声明!
我不写脚本,我只是想做这个但是得到了这个兄弟项目,想通过这个来帮助别人。
如何使用 Selenium 和 Python 绕过 Google 验证码?
当我尝试抓取某些内容时,Google 给我一个验证码。我可以用 Selenium Python 绕过 Google 验证码吗?
例如 Google reCAPTCHA. You can see this CAPTCHA via this link: https://www.google.com/recaptcha/api2/demo
开始使用
硒
Selenium 自动化浏览器。现在,你想用这种能力实现什么完全取决于个人,但主要是为了通过浏览器客户端自动化 Web 应用程序以进行测试,当然它当然不限于此。
验证码
另一方面,CAPTCHA(缩写为 ...完全自动化 Public 区分计算机和人类的图灵测试... ) 是一种用于计算以确定用户是否为人类的挑战-响应测试。
因此,Selenium 和 CAPTCHA 有两个完全不同的用途,理想情况下不应用于完成任何相互关联的任务。
话虽如此,reCAPTCHA 可以轻松检测网络流量并将您的程序识别为 Selenium 驱动的 bot。
通用解决方案
但是,有一些通用方法可以避免在网络抓取时被检测到:
- 网站可以确定您的 script/program 的第一个也是最重要的属性是通过您的 显示器大小 。所以建议不要使用常规的Viewport.
- 如果您需要向网站发送多个请求,请继续更改每个请求的 User Agent。在这里你可以找到关于
- 为了模拟类人行为,您可能需要减慢脚本执行速度甚至超过WebDriverWait and expected_conditions inducing
time.sleep(secs)
. Here you can find a detailed discussion on
这个用例
但是,在一些用例中,我们能够使用 Selenium 与 reCAPTCHA 交互,您可以在以下讨论中找到更多详细信息:
参考资料
您可以在以下位置找到一些相关讨论:
tl;博士
- How does reCAPTCHA 3 know I'm using Selenium/chromedriver?
为了在抓取 Google 时绕过验证码,您必须手动解决验证码并导出 Google 给您的 cookie。现在,每次打开 Selenium WebDriver 时,请确保添加导出的 cookie。 GOOGLE_ABUSE_EXEMPTION cookie 是您要找的那个,但为了安全起见,我会保存所有 cookie。
如果你想在你的抓取中增加一层稳定性,你应该导出几个 cookie 并在每次 ping Google 时随机让你的脚本 select 其中一个 Google。
这些 cookie 的有效期很长,因此您不需要每天都获取新的 cookie。
有关在 Python 和 Selenium 中保存和加载 cookie 的帮助,您应该查看此答案:How to save and load cookies using Python + Selenium WebDriver
清除浏览历史、缓存数据、cookie 和其他网站数据 首先在浏览器中创建一个 Google 帐户 window 由 selenium 打开。 登录您的帐户
wd.get("https://accounts.google.com/signin/v2/identifier?hl=en&passive=true&continue=https%3A%2F%2Fwww.google.com%2F%3Fgws_rd%3Dssl&ec=GAZAmgQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
Thread.sleep(2000);
wd.findElement(By.name("identifier")).sendKeys("Email"+Keys.ENTER);
Thread.sleep(3000);
wd.findElement(By.name("password")).sendKeys("Password"+Keys.ENTER);
Thread.sleep(5000);
然后使用此代码打开任何使用 recaptcha 勾选复选标记的网站
String framename=wd.findElement(By.tagName("iframe")).getAttribute("name");
wd.switchTo().frame(framename);
wd.findElement(By.xpath("//span[@id='recaptcha-anchor']")).click();
您不会找到任何拼图或任何东西。
简单的解决方案是暂停程序 10 秒或更长时间,然后在自动浏览器打开时自行解决 reCAPTCHA,然后程序在 10 秒后启动并执行程序的其余部分,例如单击提交按钮或其他东西
绕过解决它或绕过根本没有得到它?
求解:
- 注册 2captcha、capmonster cloud、deathbycaptcha 等,并按照他们的说明进行操作。他们会给你一个令牌,你用表单传递。
永远得不到它:
- 确保您拥有良好的 IP 声誉(对于 Cloudflare 最重要)。
- 确保你有一个好的浏览器指纹(对 Distil 来说最重要)——我推荐 puppeteer + stealth 插件。
好的,所以有一个简单的 python 脚本可以为您解决验证码问题。
基本上是读音频然后用google助手转成文字粘贴
仅在音频验证码中有效,imahe 验证码 V2 给出的情况最多
免责声明!
我不写脚本,我只是想做这个但是得到了这个兄弟项目,想通过这个来帮助别人。