我很好奇Recaptcha v3的工作方式。具体来说就是浏览器的指纹。
当我通过selenium / chromedriver启动chrome实例并针对ReCaptcha 3(https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php)进行测试时,使用selenium / chromedriver时总得到0.1分。
在正常实例中使用隐身模式时,我得到0.3。
我已经击败其他检测系统,方法是注入JS并修改Web驱动程序对象,然后从源代码重新编译WebDriver并修改$ cdc_变量。
我可以看到看起来有些混乱的POST返回服务器,所以我将开始在那里进行挖掘。
我只想检查是否有人愿意与他们分享任何建议或经验,以决定我是否正在运行硒/ chromedriver?
答案 0 :(得分:2)
网站可以轻松检测网络流量并将您的程序标识为 BOT 。 Google 已经发布了 5(五) reCAPTCHA,供您在创建新网站时选择。其中四个处于活动状态,而 reCAPTCHA v1 正在关闭。
但是,有一些通用方法可以避免在抓取网页时被检测到
time.sleep(secs)
的程度。在这里您可以找到有关How to sleep webdriver in python for milliseconds 一些值得深思的地方:
答案 1 :(得分:2)
Selenium和Puppeteer具有一些与非自动化浏览器不同的浏览器配置。另外,由于一些JS函数已注入浏览器以操纵元素,因此您需要创建一些替代来避免检测。
有一些很好的文章解释了硒和木偶检测器在具有检测机制的站点上运行时的检测要点:
Detecting Chrome headless, new techniques-您可以使用它在机器人上编写防御性代码
It is not possible to detect and block chrome headless-用清晰,合理的方式说明JS代码可以检测到由自动软件启动的浏览器和实际的浏览器之间的差异,以及如何伪造它。
Github - headless-cat-n-mouse-使用puppeteer + python避免检测的示例