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

2025-01-10 08:47:00
admin
原创
156
摘要:问题描述:如何使用 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

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用