Recaptcha 3如何知道我正在使用硒/ chromedriver?

jam*_*mie 7 selenium recaptcha web-scraping selenium-chromedriver recaptcha-v3

我很好奇Recaptcha v3的工作方式。特别是浏览器指纹。

当我通过selenium / chromedriver启动chrome实例并针对ReCaptcha 3(https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php)进行测试时,使用selenium /时我总是得到0.1分chromedriver。

在正常实例中使用隐身模式时,我得到0.3。

我通过注入JS并修改Web驱动程序对象并从源代码重新编译WebDriver并修改$ cdc_变量来击败其他检测系统。

我可以看到看起来有些混乱的POST返回到服务器,所以我将开始在那里进行挖掘。

我只是想检查是否有人愿意首先与它分享任何建议或经验,以决定我是否正在运行Selenium / chromedriver?

Deb*_*anB 38

重新验证码

网站可以轻松检测网络流量并将您的程序识别为BOTGoogle已经发布了5(五个) reCAPTCHA供创建新站点时选择。其中四个处于活动状态并且reCAPTCHA v1正在关闭。


reCAPTCHA 版本和类型

  • reCAPTCHA v3(用分数验证请求):reCAPTCHA v3 允许您在没有任何用户交互的情况下验证交互是否合法。它是一个返回分数的纯 JavaScript API,使您能够在站点的上下文中采取行动:例如,需要额外的身份验证因素、发送帖子进行审核或限制可能抓取内容的机器人。
  • reCAPTCHA v2 - “我不是机器人”复选框:“我不是机器人”复选框要求用户点击一个复选框,表明用户不是机器人。这将立即通过用户(没有验证码)或挑战他们以验证他们是否是人类。这是最简单的集成选项,只需要两行 HTML 来呈现复选框。

新验证码锚

  • reCAPTCHA v2 -不可见的 reCAPTCHA 徽章:不可见的 reCAPTCHA 徽章不需要用户单击复选框,而是在用户单击您网站上的现有按钮时直接调用,或者可以通过 JavaScript API 调用调用。当 reCAPTCHA 验证完成时,集成需要 JavaScript 回调。默认情况下,只会提示最可疑的流量来解决验证码。要更改此行为,请在高级设置下编辑您的站点安全首选项。

reCaptcha_invisible_badge

  • reCAPTCHA v2 - Android:reCAPTCHA Android 库是 Google Play 服务 SafetyNet API 的一部分。该库提供了可以直接集成到应用程序中的原生 Android API。在调用 reCAPTCHA API 之前,您应该在您的应用中设置 Google Play 服务并连接到 GoogleApiClient。这将立即让用户通过(没有 CAPTCHA 提示)或挑战他们以验证他们是否是人类。
  • reCAPTCHA v1:reCAPTCHA v1 自 2018 年 3 月起已关闭。

解决方案

但是,有一些通用方法可以避免在网络抓取时被检测到:


奥特罗

一些思考:


Str*_*lfa 5

Selenium 和Puppeteer有一些与非自动化浏览器不同的浏览器配置。此外,由于一些 JavaScript 函数被注入浏览器来操作元素,因此您需要创建一些覆盖来避免检测。

有一些很好的文章解释了有关 Selenium 和 Puppeteer 在具有检测机制的站点上运行时检测的一些要点:

检测 Chrome 无头新技术- 您可以使用它为您的机器人编写防御性代码。

它是不是能够检测和阻止谷歌浏览器无头-它解释清楚和声音的方式不同的是JavaScript代码可以通过软件自动启动了浏览器和一个真实的,以及如何检测与伪造它。

GitHub - headless-cat-n-mouse - 使用 Puppeteer + Python 来避免检测的示例


归档时间:

查看次数:

7068 次

最近记录:

6 年,7 月 前