CloakBrowser:4.3k Stars!开源浏览器反检测终极解决方案
标签: CloakBrowser / 反爬虫 / 浏览器指纹 / 绕过检测 / Playwright / Chromium / WebRTC
原文: https://mp.weixin.qq.com/s/hY6G3ji-uB1rm9FICWUk0Q
核心亮点
做爬虫被反爬虫系统拦疯?CloakBrowser 可能是目前最接近"完美伪装"的解决方案。
- 4300+ GitHub Stars:反爬虫检测领域的明星项目
- 49 个 C++ 源码级补丁:从 Chromium 源码层面修改,而非运行时打补丁
- humanize=True:一键开启人性化鼠标移动、真实打字、模拟滚动
- WebRTC IP 欺骗:自动从代理获取 IP,防止本地 IP 泄露
- 浏览器配置管理器:可替代 Multilogin、GoLogin、AdsPower 等商业工具
- 零侵入迁移:仅需 3 行代码即可替换 Playwright
一、被反爬虫支配的恐惧
做爬虫的开发者,大概都遇到过这种情况:
- 网页直接弹出一个验证框:"对不起,检测到异常访问…"
- 或者更狠的,直接返回 403 Forbidden,连验证的机会都不给
Cloudflare、reCAPTCHA、FingerprintJS……这些反爬虫系统越来越聪明,传统的 Selenium、Playwright 在它们面前就像"透明人"——一眼就被认出来。
二、问题的根源:浏览器指纹
为什么 Selenium、Playwright 会被检测出来?
答案在于浏览器指纹。
当你用普通浏览器访问网站时,网站会收集大量的浏览器特征:
| 特征类型 | 说明 |
|---|---|
| Canvas 画布渲染结果 | 不同的显卡和驱动会产生不同的渲染结果 |
| WebGL 渲染信息 | 图形加速信息 |
| 字体列表 | 系统安装的字体 |
| 屏幕分辨率 | 显示器的分辨率 |
| WebRTC IP 地址 | 用于 P2P 通信的 IP |
| navigator.webdriver | 自动化工具永远是 true |
| 插件列表 | 浏览器插件 |
| TLS 指纹 | SSL/TLS 握手特征 |
这些特征组合起来,就是一个浏览器的"指纹"。而 Selenium、Playwright 由于它们的特征是固定的——比如 navigator.webdriver 永远是 true——所以网站可以轻松识别。
传统方案的局限性
传统的解决方案是打补丁:在代码里注入 JavaScript,修改这些特征值。
但这有个问题:
- 每次浏览器更新,补丁就可能失效
- 打补丁本身就是一种特征,专业的检测系统能识别出"被修改过的痕迹"
三、CloakBrowser 核心原理
C++ 源码级修改
CloakBrowser 的思路完全不同。
它不是在运行时打补丁,而是直接修改 Chromium 的 C++ 源码,重新编译成新的二进制。
这意味着什么?
Detection sites see a real browser — because it is a real browser.
测试数据(2026年4月实测,Chromium 146)
| 检测服务 | 普通 Playwright | CloakBrowser |
|---|---|---|
| reCAPTCHA v3 | 0.1(机器人) | 0.9(人类) |
| Cloudflare Turnstile | FAIL | PASS |
| FingerprintJS | DETECTED | PASS |
| BrowserScan | DETECTED | NORMAL (4/4) |
30+ 个检测站点测试,30+ 个通过。
四、核心功能详解
4.1 49 个源码级补丁
CloakBrowser 对 Chromium 进行了 49 个 C++ 级别的源码补丁:
- Canvas 指纹
- WebGL 指纹
- Audio 指纹
- Fonts 指纹
- GPU 指纹
- Screen 指纹
- WebRTC IP
- Network timing
- Automation signals
- CDP input behavior
每一个指纹都在源码层面被修改,检测系统看到的不是"被修改的特征",而是"真实的浏览器特征"。
4.2 humanize=True:人性化行为
除了硬件指纹,还有行为检测。
真人操作浏览器时:
- 鼠标移动不是直线,而是有弧度的曲线
- 打字时每个字符之间有微小的停顿
- 滚动页面时速度不均匀
CloakBrowser 的 humanize=True 参数可以一键开启这些人性化行为:
- Bézier 曲线鼠标移动
- 逐字符真实打字
- 模拟真人滚动模式
4.3 WebRTC IP 欺骗
使用代理时,真人浏览器会暴露本地 IP,而不是代理 IP。
CloakBrowser 的 --fingerprint-webrtc-ip=auto 可以自动从代理 IP 获取并欺骗 WebRTC,让检测系统看到的是代理 IP,而不是本地 IP。
4.4 浏览器配置管理器
CloakBrowser 还提供了自托管的浏览器配置管理器,可以替代 Multilogin、GoLogin、AdsPower 等商业工具:
- 创建唯一指纹的浏览器配置
- 代理支持
- 持久会话
- 通过 noVNC 在浏览器中启动和交互
五、快速开始:3 行代码,30 秒
CloakBrowser 最大的优点是对现有代码的零侵入。
如果你已经在用 Playwright
只需要修改 3 行代码:
# 修改前
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()
browser = pw.chromium.launch()
# 修改后
from cloakbrowser import launch
browser = launch()
剩下的代码完全不用改。
安装方式
# Python
pip install cloakbrowser
# JavaScript
npm install cloakbrowser playwright-core
第一次运行时,CloakBrowser 会自动下载约 200MB 的 stealth Chromium 二进制,之后会缓存在本地。
六、支持的主流框架
CloakBrowser 可以与多种框架集成:
| 框架 | 说明 |
|---|---|
| browser-use | AI 代理浏览器交互 |
| Crawl4AI | AI 友好的爬虫 |
| Scrapling | 高性能爬虫 |
| Stagehand | AI 驱动的浏览器交互 |
| LangChain | LLM 应用框架 |
| Selenium | 传统自动化测试 |
基本上,只要是基于 Playwright 或 Puppeteer 的框架,CloakBrowser 都可以无缝替换。
七、注意事项
❌ 这个工具能解决 CAPTCHA 吗?
不能。它是预防,不是解决。
CloakBrowser 的目标是防止验证码出现,而不是在出现验证码后自动破解。如果目标网站坚持要你输入 CAPTCHA,那还是需要额外的 CAPTCHA 解决服务。
❓ 需要自己准备代理
CloakBrowser 不内置代理旋转功能。你需要自己准备代理服务器,在 launch 时通过 proxy 参数传入。
✅ 浏览器会自动更新
CloakBrowser 有自动更新机制,会在后台检查新版本并下载。对于需要固定版本的场景,可以在 launch 时指定特定版本。
八、写在最后
用 CloakBrowser 跑了一周爬虫项目,感触最深的一点是:
好的工具应该是透明的。
你不需要去研究每个网站的检测机制,不需要去写一堆 workaround,不需要每次浏览器更新就提心吊胆。
CloakBrowser 把这些复杂的事情在底层处理掉了,对上层代码来说,就是换一个 import。
如果你正在被反爬虫困扰,或者你的 AI 代理需要稳定的浏览器环境,CloakBrowser 值得一试。
毕竟,3 行代码、30 秒的迁移成本,试试也不亏。
项目地址
🔗 https://github.com/CloakHQ/CloakBrowser
本文整理自微信公众号「小华同学ai」,原文链接:https://mp.weixin.qq.com/s/hY6G3ji-uB1rm9FICWUk0Q