如何使用 Selenium 和 Python 绕过 Google CAPTCHA?
- 2025-01-10 08:47:00
- admin 原创
- 13
问题描述:
如何使用 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(缩写为...完全自动化的公共图灵测试,用于区分计算机和人类...)是一种用于计算的质询-响应测试,用于确定用户是否是人类。
因此,Selenium和CAPTCHA有两个完全不同的用途,理想情况下不应将它们用于完成任何相互关联的任务。
话虽如此,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,并且所有验证请求都将通过。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理必备:盘点2024年13款好用的项目管理软件