如何使用 Selenium 和 Python 绕过 Google CAPTCHA?

2025-01-10 08:47:00
admin
原创
10
摘要:问题描述:如何使用 Selenium 和 Python 绕过 Google CAPTCHA?当我尝试抓取某些内容时,Google 会给我一个 CAPTCHA。我可以使用 Selenium Python 绕过 Google CAPTCHA 吗?例如,它是 Google reCAPTCHA。您可以通过此链接查看此...

问题描述:

如何使用 Selenium 和 Python 绕过 Google CAPTCHA?

当我尝试抓取某些内容时,Google 会给我一个 CAPTCHA。我可以使用 Selenium Python 绕过 Google CAPTCHA 吗?

例如,它是 Google reCAPTCHA。您可以通过此链接查看此 CAPTCHA: https: //www.google.com/recaptcha/api2/demo


解决方案 1:

首先使用Selenium的Python客户端,您应该避免解决/绕过 Google CAPTCHA。



-

Selenium可以自动化浏览器。现在,你想用这种能力实现什么完全取决于个人,但它主要是通过浏览器客户端自动化 Web 应用程序以进行测试,当然它肯定不限于此。


验证码

另一方面,CAPTCHA(缩写为...完全自动化的公共图灵测试,用于区分计算机和人类...)是一种用于计算的质询-响应测试,用于确定用户是否是人类。

因此,SeleniumCAPTCHA有两个完全不同的用途,理想情况下不应将它们用于完成任何相互关联的任务。

话虽如此,reCAPTCHA可以轻松检测网络流量并将您的程序识别为Selenium驱动的机器人


通用解决方案

但是,有一些通用的方法可以避免在网页抓取时被发现:

  • 网站判断你的脚本/程序的首要属性就是你的显示器尺寸。所以建议不要使用传统的Viewport。

  • 如果您需要向网站发送多个请求,请继续更改每个请求的用户代理。您可以在这里找到有关如何在 Selenium 中更改 Google Chrome 用户代理的详细讨论?

  • 为了模拟类似人类的行为,您可能需要减慢脚本执行速度,甚至超过WebDriverWait和expected_conditions的诱导速度time.sleep(secs)。在这里,您可以找到有关如何在 Python 中让 Selenium WebDriver 休眠几毫秒的详细讨论


此用例

但是,在一些用例中,我们能够使用Selenium与reCAPTCHA进行交互,您可以在以下讨论中找到更多详细信息:

  • 如何使用 Selenium 和 Java 点击 reCAPTCHA

  • 使用 Selenium 和 VBA Excel 的 reCAPTCHA 复选框的 CSS 选择器

  • 找到 reCAPTCHA 元素并单击它 — Python + Selenium


参考

您可以在以下位置找到几个相关的讨论:

  • 如何通过 Python 使用 GeckoDriver 和 Firefox 使 Selenium 脚本无法被检测到?

  • 是否存在无法检测到的 Selenium WebDriver 版本?


总结

  • reCAPTCHA 3 如何知道我正在使用 Selenium/chromedriver?

解决方案 2:

为了在抓取 Google 数据时绕过 CAPTCHA,您必须手动解决 CAPTCHA 并导出 Google 提供给您的 cookie。现在,每次打开 Selenium WebDriver 时,请确保添加您导出的 cookie。GOOGLE_ABUSE_EXEMPTION cookie 就是您要找的 cookie,但为了安全起见,我会保存所有 cookie。

如果您希望在抓取数据时有额外的稳定性,您应该导出多个 cookie,并让您的脚本在每次 ping Google 时随机选择其中一个。

这些 cookie 的保质期很长,因此您不需要每天都获取新的 cookie。

有关在 Python 和 Selenium 中保存和加载 cookie 的帮助,你应该查看这个答案:如何使用 Python + Selenium WebDriver 保存和加载 cookie

解决方案 3:

清除浏览历史记录、缓存数据、cookie 和其他网站数据首先在 selenium 打开的浏览器窗口中创建一个 Google 帐户。登录到您的帐户

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();

你不会找到任何谜题或任何东西。

解决方案 4:

绕过来解决它还是绕过去根本就得不到它?

解决此问题:

  • 使用 2captcha、capmonster cloud、deathbycaptcha 等进行注册,然后按照他们的指示操作。他们会给你一个令牌,你可以随表格一起传递。

永远得不到:

  • 确保您拥有良好的 IP 信誉(对于 Cloudflare 来说最重要的)。

  • 确保您有一个良好的浏览器指纹(对于 Distil 来说最重要)——我推荐 puppeteer + 隐形插件。

解决方案 5:

好的,有一个简单的 python 脚本可以为您解决验证码。

它基本上读取音频,然后使用谷歌助手将其转换为文本并粘贴。

它只适用于音频验证码,imahe captcha V2 是最常见的情况

https://github.com/ohyicong/recaptcha_v2_solver

免责声明!

我没有写脚本,我只是有个想法,但是得到了这个兄弟项目,所以想通过这个来帮助其他人。

解决方案 6:

如果您有权访问配置,请添加 SiteKey:6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI SecretKey:6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

对于 reCAPTCHA v2,请使用以下测试密钥。您将始终获得 No CAPTCHA,并且所有验证请求都将通过。

请参阅:https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha.-what-should-i-do

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   984  
  在项目管理领域,CDCP(Certified Data Center Professional)认证评审是一个至关重要的环节,它不仅验证了项目团队的专业能力,还直接关系到项目的成功与否。在这一评审过程中,沟通技巧的运用至关重要。有效的沟通不仅能够确保信息的准确传递,还能增强团队协作,提升评审效率。本文将深入探讨CDCP...
华为IPD流程   0  
  IPD(Integrated Product Development,集成产品开发)是一种以客户需求为核心、跨部门协同的产品开发模式,旨在通过高效的资源整合和流程优化,提升产品开发的成功率和市场竞争力。在IPD培训课程中,掌握关键成功因素是确保团队能够有效实施这一模式的核心。以下将从五个关键成功因素展开讨论,帮助企业和...
IPD项目流程图   0  
  华为IPD(Integrated Product Development,集成产品开发)流程是华为公司在其全球化进程中逐步构建和完善的一套高效产品开发管理体系。这一流程不仅帮助华为在技术创新和产品交付上实现了质的飞跃,还为其在全球市场中赢得了显著的竞争优势。IPD的核心在于通过跨部门协作、阶段性评审和市场需求驱动,确保...
华为IPD   0  
  华为作为全球领先的通信技术解决方案提供商,其成功的背后离不开一套成熟的管理体系——集成产品开发(IPD)。IPD不仅是一种产品开发流程,更是一种系统化的管理思想,它通过跨职能团队的协作、阶段评审机制和市场需求驱动的开发模式,帮助华为在全球市场中脱颖而出。从最初的国内市场到如今的全球化布局,华为的IPD体系在多个领域展现...
IPD管理流程   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用