我很好奇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回到服务器所以我将开始挖掘那里。
我只是想检查是否有人愿意分享任何建议或经验,首先要了解它可能正在寻找什么来确定我是否正在运行selenium / chromedriver?
网站可以轻松检测网络流量并将您的程序识别为BOT。谷歌已经发布了5(5)个reCAPTCHA,可以在创建新网站时进行选择。其中四个处于活动状态且reCAPTCHA v1正在关闭。
但是,有一些通用的方法可以避免在网页抓取时被检测到:
time.sleep(secs)
。在这里你可以找到关于How to sleep webdriver in python for milliseconds的详细讨论一些值得思考的东西:
Selenium和Puppeteer有一些浏览器配置,与非自动浏览器不同。此外,由于某些JS函数被注入到浏览器中以操作元素,因此您需要创建一些覆盖以避免检测。
有一些很好的文章解释了有关Selenium和Puppeteer检测的一些观点,它在具有检测机制的网站上运行:
Detecting Chrome headless, new techniques - 您可以使用它在机器人上编写防御性代码
It is not possible to detect and block chrome headless - 以清晰和完善的方式解释JS代码可以在自动化软件和真实软件推出的浏览器之间检测到的差异,以及如何伪造它。
Github - headless-cat-n-mouse - 使用puppeteer + python避免检测的示例