当前位置: 首页 > 知识库问答 >
问题:

reCAPTCHA 3如何知道我在使用Selenium/ChromeDriver?

封梓
2023-03-14

当对普通实例使用incognito时,我得到0.3。

通过注入JavaScript、修改web驱动程序对象、从源代码重新编译webdriver、修改$cdc_变量,我击败了其他检测系统。

我可以看到什么看起来像一些模糊的帖子回到服务器,所以我要开始挖掘那里。

它可能在寻找什么来确定我是否在运行Selenium/ChromeDriver?

共有1个答案

洪育
2023-03-14

网站可以很容易地检测网络流量,并将您的程序识别为机器人。谷歌已经发布了5个reCAPTCHA供创建新站点时选择。其中四个处于活动状态,reCAPTCHA v1处于关闭状态。

  • reCAPTCHA v3(用分数验证请求):reCAPTCHA v3允许您在没有任何用户交互的情况下验证交互是否合法。它是一个返回分数的纯JavaScript API,使您能够在站点的上下文中采取行动:例如,需要额外的身份验证因素、向审核发送帖子或限制可能正在搜索内容的机器人。
  • recaptcha v2-“我不是机器人”复选框:“我不是机器人”复选框要求用户单击指示用户不是机器人的复选框。这将立即通过用户(没有验证码),或者询问他们是否是人类。这是集成的最简单的选项,只需要两行HTML就可以呈现复选框。
  • reCAPTCHA v2-不可见的reCAPTCHA徽章:不可见的reCAPTCHA徽章不需要用户单击复选框,而是当用户单击站点上现有的按钮时直接调用,或者可以通过JavaScript API调用调用。当reCAPTCHA验证完成时,集成需要一个JavaScript回调。默认情况下,只有最可疑的流量才会被提示解决验证码。若要更改此行为,请在高级设置下编辑站点安全首选项。
  • reCAPTCHA v2-Android:reCAPTCHA Android库是Google Play services SafetyNet API的一部分。这个库提供了原生的Android API,您可以直接集成到应用程序中。在调用reCAPTCHA API之前,您应该在应用程序中设置Google Play服务,并连接到GooglePiclient。这将立即让用户通过(没有验证码提示),或者询问他们是否是人类。
  • reCAPTCHA v1:reCAPTCHA v1自2018年3月以来已关闭。

然而,有一些通用的方法可以避免在搜索Web时被检测到:

  • 网站决定脚本/程序的首要属性是通过监视器的大小。所以建议不要使用传统的视口。
  • 如果您需要向一个网站发送多个请求,请在每个请求上不断更改用户代理。在这里,您可以找到关于如何在Selenium中更改Google Chrome用户代理的详细讨论?
  • 要模拟类似人类的行为,可能需要降低脚本执行速度,甚至超过WebDriverWait和expected_conditions,从而导致时间。sleep(secs)。在这里,您可以找到关于如何在python中让webdriverHibernate毫秒的详细讨论
    null
 类似资料:
  • 问题内容: 我想知道我是否在通话。 如果我正在通话,请启动服务(服务部分已清除)。我该怎么做呢? 参加通话时,我需要致电服务中心…我不知道该怎么做?有什么帮助吗? 问题答案: 您需要广播接收器… 在清单中声明广播接收器… 还声明使用权限… 广播接收器类… 还有一类可自定义电话状态侦听器…

  • 我知道如何通过selenium浏览结果页面,但我不知道如何浏览结果页面。我也尝试过mechanize,但这并没有让我走得更远。这就是我现在的处境: 最终的想法是将当事人、案件编号和提交日期作为字符串存储在一个数据库中。csv。当我现在打印输出时,我得到: 感谢任何帮助。

  • 问题内容: 我有一个小小的Jenkins VM,如何知道Jenkins的用户身份运行?我怀疑是Tomcat。 问题答案: 我会用它来获取进程的uid,并在/ etc / passwd中使用grep

  • 问题内容: 在昨天发布的另一个问题中,我对如何在Windows中将Python脚本作为服务运行提供了很好的建议。我唯一想知道的是:Windows如何了解可以在本机工具(“管理工具”中的“服务”窗口)中管理的服务。即 在Windows下,等效于在Linux下将启动/停止脚本放在/etc/init.d中的Windows是什么? 问题答案: 与Windows中大多数“可感知”的东西一样,答案是“注册表”

  • 问题内容: 我在Linux Ubuntu服务器中搜索php.ini文件所在的路径,并且在执行命令时发现很多php.ini 。那么如何从php.ini所在的php脚本网页中确切地知道呢? 问题答案: 您可以使用php_ini_loaded_file() 取自php.net: 您可能还需要检查php_ini_scanned_files() 另外,您应该注意,如果从CLI运行PHP脚本,则有可能使用与服

  • 问题内容: [编辑:已解决,请参阅问题文本的中途] 有关了解在YouTube页面上播放视频的内容的快速提问: 综上所述 作为基于浏览器的GUI的一部分,我使用Selenium在Youtube上播放视频。 我需要知道视频何时完成播放,以便GUI进行其他操作(例如,将本地HTML馈入浏览器)。 代码段和问题 在这一点上,我可以考虑视频的长度。 但是,我想知道是否可以通过Selenium驱动程序查询Yo