"隐形浏览器"CloakBrowser:告别自动化行为被检测到,reCAPTCHA稳定0.9分,完美伪装成真实用户

工具推荐 1778209834更新

0

你有没有过这种经历。

辛辛苦苦跑通了一个AI Agent的skill,想让它自动去后台填填表、点点按钮,结果刚跑起来就被网站的反爬系统给拦下来了。

Cloudflare弹出一个验证框,上面写着"检测到自动化行为"。

reCAPTCHA的分数直接给你标到0.1,基本等于被判定成机器人。

我之前就是这样的情况,被恶心了很长一段时间。

后来我找到了一个工具,叫CloakBrowser。用了一段时间之后,我想专门写一篇文章介绍一下它。

CloakBrowser是什么?

官方给它的定位是:Stealth Chromium that passes every bot detection test

翻译成人话就是:一个能通过所有机器人检测测试的隐形浏览器。

但这个描述说实话有点轻描淡写了。因为它不是那种"打补丁"或者"注入JS"的方案——那些东西每次Chrome更新就容易坏,而且高级点的反爬系统一眼就能认出来。

CloakBrowser是从Chromium的C++源码层面动刀子,把所有会被检测的特征全部在二进制编译的时候就改掉了。

什么叫在源码层面改?

就是浏览器在底层渲染的时候,它跟服务器通信的那些参数——GPU型号、屏幕分辨率、WebGL渲染结果、Canvas指纹、音频处理结果——全部都是被篡改过的。服务器那边拿到这些数据,看到的就是一台普普通通的真实浏览器,而不是什么自动化工具。

它能做什么:通过所有主流检测。

我直接说测试结果吧,

reCAPTCHA v3分数,普通Playwright是0.1,基本等于机器人。CloakBrowser是多少?

0.9。

0.9是什么概念,就是一个正常人类用户的分数。而且这个是服务端验证的,不是客户端自己说的。

Cloudflare Turnstile,非交互式挑战,直接通过。管理式挑战,单次点击通过。

FingerprintJS的机器人检测,通过。BrowserScan的机器人检测,4项检测全部显示正常。

还有ShieldSquare这种在生产环境上跑的防护方案,普通浏览器直接被拦,CloakBrowser通过。

除了底层的指纹伪装,CloakBrowser还有一个我特别喜欢的功能,叫humanize=True

开了这个之后,你所有的浏览器操作都会变得像真人。

鼠标移动不是瞬间到达目标点,而是走贝塞尔曲线,有弧度有加速减速。键盘输入不是瞬间填充,而是有随机的打字延迟,模拟真实的击键节奏。页面滚动也不是一下拉到目标位置,而是有加速巡航减速的微步过程。

就这一行代码的事:

from cloakbrowser import launchbrowser = launch(humanize=True)

你开了这个之后,整个浏览行为就会变得非常像真人操作。不是那种机械化的完美,而是有瑕疵有停顿有变化的真实感。

官方说开了humanize之后,deviceandbrowserinfo.com的检测结果是"You are human!",24项信号全部通过。这个我没有全测,但我自己用下来,确实比之前干净很多。

还有一个很实用的功能——launch_persistent_context()

你第一次登录后台之后,Cookie和Session都会保存到本地。下次再启动,登录状态直接保留,不用重新走登录流程。

这个对于需要长期运行的AI Agent来说特别重要。不然你每天都要重新跑一遍登录,烦都烦死。

而且它还避免了"无痕模式检测"的问题。有些网站会检测你是不是在用无痕浏览器,一旦检测到是,就会给你降权或者弹出验证。用这个持久化配置,浏览器看起来就是一个正常的用户配置文件,不会有这个问题。

如果你用browser-use做AI Agent,CloakBrowser有现成的集成示例:

from browser_use import Agent, BrowserSession, ChatOpenAIfrom cloakbrowser import launch_asynccb_browser = await launch_async(    headless=True,    args=["--remote-debugging-port=9242"],)session = BrowserSession(cdp_url="http://127.0.0.1:9242")agent = Agent(    task="Go to https://www.google.com and search for 'browser automation'",    llm=ChatOpenAI(model="gpt-4o-mini"),    browser_session=session,)result = await agent.run()

Crawl4AI、LangChain、Selenium这些框架也都有集成示例,基本上你用什么框架都能无缝对接。

项目支持Linux、Windows、macOS,而且都有对应的二进制文件,pip install之后自动下载,不用自己手动配置。

如果你的服务器是Linux,又遇到了那种特别严格的反爬网站,它还支持Docker部署,一行命令就跑起来了:

docker run --rm cloakhq/cloakbrowser cloaktest

说完CloakBrowser本身的好,接下来讲讲它和其他方案的对比。这个很重要,因为很多人可能还在用其他的方案。

普通Playwright

普通Playwright就是裸奔。没有任何伪装,服务器一看就知道是自动化工具。

reCAPTCHA v3直接0.1分,Cloudflare Turnstile直接失败,navigator.webdriver直接显示true。

如果你只是做内部测试或者爬一些完全没有防护的网站,那用Playwright没问题。但但凡有点防护的,都不建议裸奔。

playwright-stealth

这是一个流行了很多年的方案,原理是在Playwright启动之后,注入JavaScript来修改一些检测参数。

好处是简单,pip install一下就行。但坏处是,每次Chrome更新都容易坏。而且因为是注入JS的方式,高级的反爬系统能检测到注入行为本身。

实测下来,reCAPTCHA v3分数大概在0.3到0.5之间,不如CloakBrowser的0.9。

undetected-chromedriver

这个走的是另一个路线,在Chrome的配置文件层面动刀子。

同样面临每次更新容易坏的问题,而且它用的是Selenium API,不是原生的Playwright API,代码迁移成本高。

分数大概在0.3到0.7之间,比playwright-stealth好一点,但稳定性堪忧,很多维护者已经不怎么更新了。

Camoufox

这个是针对Firefox的方案,优点是Firefox的指纹防护本来就好一些。

但问题是,现在主流网站大多针对Chromium做优化,Firefox的兼容性问题比较多。而且Camoufox之前因为个人原因停止维护了将近一年,官方说"有一年的维护空档期"。虽然现在已经恢复开发,但最新版本还处于alpha/beta状态,官方明确警告"不适合生产环境使用"。

相比之下,CloakBrowser是生产级可用的,活跃维护,版本更新很快。

怎么选?

如果你需要处理有严格反爬的网站后台,CloakBrowser是最稳的选择

它不是那种临时打补丁的方案,而是从根本上解决了问题。49处C++源码级别的修改,让它本质上就不是一个"伪装"的浏览器,而是一台真实的浏览器。

当然,它也不是万能的。它不解决CAPTCHA——它做的是防止CAPTCHA出现。真遇到了,还是得靠CAPTCHA solving服务。

另外,它也不带代理旋转功能,你得自己准备代理。但说实话,这两个功能都不应该集成在浏览器层面,应该分开处理。

总的来说是目前我用过最靠谱的反检测浏览器方案。

好了,这篇文章就到这里。

如果你有什么想法,欢迎评论区聊聊。

项目地址:https://github.com/CloakHQ/CloakBrowser