CloakBrowser 是什么?
CloakBrowser 是由 CloakHQ 开发的Open Source隐形 Chromium 浏览器。拥有 2,431+ GitHub Stars 和 200+ Forks,它被设计为通过所有机器人检测测试,同时保持作为 Playwright 的即插即用替代品。
与容易被检测到的标准无头浏览器不同,CloakBrowser 实现了源代码级指纹补丁,使其与真实人类操作的浏览器无法区分。
GitHub: https://github.com/CloakHQ/CloakBrowser
| 指标 | 数值 |
|---|---|
| Stars | 2,431+ |
| Forks | 200+ |
| 语言 | Python |
| 协议 | MIT |
| 今日 | 482 stars |
| 机器人测试通过 | 30/30 |
为什么标准浏览器会被检测到
现代网站使用复杂的机器人检测系统:
| 检测方法 | 检查内容 | 标准无头浏览器 |
|---|---|---|
| User Agent | 浏览器版本、操作系统 | 通常过时或通用 |
| WebDriver 标志 | navigator.webdriver | 无头模式下为 true |
| 插件 | Flash、PDF 查看器 | 空数组 |
| 语言 | Accept-Language 头 | 缺失或可疑 |
| WebGL | GPU 厂商、渲染器 | “Google Inc.” 或 null |
| Canvas 指纹 | 渲染差异 | 一致但可检测 |
| Chrome Runtime | window.chrome | 缺失属性 |
| 权限 | 通知、地理位置 | 默认拒绝 |
| 内存 & CPU | 硬件规格 | 通常不真实 |
CloakBrowser 的隐形技术
1. 源代码级指纹补丁
CloakBrowser 不只是注入 JavaScript —— 它修补 Chromium 源代码:
1from cloakbrowser import StealthBrowser
2
3# 启动隐形浏览器
4browser = StealthBrowser(
5 headless=True, # 无头模式下仍然无法检测
6 fingerprint='desktop_chrome_win11', # 预定义配置文件
7 proxy='http://user:pass@proxy:8080' # 可选代理
8)
9
10# 访问受保护网站
11page = browser.new_page()
12page.goto('https://bot-protected-site.com')
13
14# 提取数据而不触发检测
15content = page.content()
2. 指纹配置文件
可用的预定义配置文件:
| 配置文件 | 操作系统 | 浏览器 | 用途 |
|---|---|---|---|
desktop_chrome_win11 | Windows 11 | Chrome 120 | 通用爬虫 |
desktop_firefox_mac | macOS | Firefox 121 | 替代指纹 |
mobile_safari_ios17 | iOS 17 | Safari | 移动端测试 |
desktop_edge_win10 | Windows 10 | Edge 120 | 企业网站 |
custom | 任意 | 任意 | 自定义 |
3. 动态指纹轮换
1from cloakbrowser import FingerprintRotator
2
3# 每10个请求轮换指纹
4rotator = FingerprintRotator(
5 profiles=['desktop_chrome_win11', 'desktop_firefox_mac'],
6 rotation_interval=10
7)
8
9for url in url_list:
10 profile = rotator.get_next()
11 browser = StealthBrowser(fingerprint=profile)
12 page = browser.new_page()
13 page.goto(url)
14 # ... 提取数据
15 browser.close()
架构
核心组件
1┌─────────────────────────────────────────┐
2│ CloakBrowser 核心 │
3│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
4│ │指纹管理器│ │补丁引擎 │ │代理路由器│ │
5│ └────┬────┘ └────┬────┘ └────┬────┘ │
6│ │ │ │ │
7│ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │
8│ │Canvas │ │WebGL │ │WebDriver│ │
9│ │噪声注入 │ │伪装 │ │补丁 │ │
10│ └─────────┘ └─────────┘ └─────────┘ │
11└─────────────────────────────────────────┘
12 │
13 ┌───────▼───────┐
14 │ Chromium │
15 │ (已修补) │
16 └───────────────┘
检测规避技术
| 技术 | 实现方式 | 有效性 |
|---|---|---|
| Canvas 噪声 | 逐像素随机化 | 击败 canvas 指纹识别 |
| WebGL 伪装 | 伪造 GPU 厂商/渲染器 | 通过 WebGL 检测 |
| WebDriver 补丁 | 移除 navigator.webdriver | 通过自动化标志检查 |
| 插件模拟 | 真实插件列表 | 通过插件枚举 |
| 时区伪装 | 匹配代理位置 | 避免时区不匹配 |
| 字体列表掩码 | 常见系统字体 | 避免基于字体的检测 |
| 硬件并发 | 真实 CPU 核心数 | 通过 Performance API |
| 内存伪装 | 真实内存值 | 避免基于内存的检测 |
安装
1# 克隆仓库
2git clone https://github.com/CloakHQ/CloakBrowser.git
3cd CloakBrowser
4
5# 安装依赖
6pip install -r requirements.txt
7
8# 下载修补版 Chromium
9python setup.py --download-chromium
10
11# 运行机器人检测测试
12python test_bot_detection.py
13# 预期输出:30/30 测试通过
使用示例
基础网络爬虫
1from cloakbrowser import StealthBrowser
2
3browser = StealthBrowser()
4page = browser.new_page()
5
6# 爬取受保护的电商网站
7page.goto('https://protected-shop.com/products')
8products = page.query_selector_all('.product')
9
10for product in products:
11 name = product.query_selector('.name').inner_text()
12 price = product.query_selector('.price').inner_text()
13 print(f"{name}: {price}")
14
15browser.close()
代理轮换
1from cloakbrowser import StealthBrowser, ProxyRotator
2
3proxies = [
4 'http://user1:pass1@proxy1:8080',
5 'http://user2:pass2@proxy2:8080',
6 'http://user3:pass3@proxy3:8080',
7]
8
9rotator = ProxyRotator(proxies)
10
11for i, url in enumerate(urls):
12 proxy = rotator.get_next()
13 browser = StealthBrowser(proxy=proxy)
14 page = browser.new_page()
15 page.goto(url)
16 # ... 爬取
17 browser.close()
会话持久化
1from cloakbrowser import StealthBrowser
2
3# 保存会话(cookies、localStorage)
4browser = StealthBrowser()
5page = browser.new_page()
6page.goto('https://site.com/login')
7page.fill('#username', 'user')
8page.fill('#password', 'pass')
9page.click('#login')
10
11# 保存会话状态
12browser.save_session('session.pkl')
13
14# 之后恢复会话
15browser = StealthBrowser(session='session.pkl')
16page = browser.new_page()
17page.goto('https://site.com/dashboard') # 仍然登录状态
机器人检测测试结果
CloakBrowser 在 30 个流行的机器人检测服务上进行了测试:
| 服务 | 结果 | 说明 |
|---|---|---|
| DataDome | ✅ 通过 | 未触发 CAPTCHA |
| PerimeterX | ✅ 通过 | 干净会话 |
| Cloudflare | ✅ 通过 | 无挑战页面 |
| reCAPTCHA v3 | ✅ 通过 | 分数 0.9/1.0 |
| hCaptcha | ✅ 通过 | 隐形模式 |
| FingerprintJS | ✅ 通过 | 唯一 ID 稳定 |
| BotGuard | ✅ 通过 | 未检测到 |
| Akamai | ✅ 通过 | 完全访问 |
| Shape Security | ✅ 通过 | 未阻止 |
| Kasada | ✅ 通过 | 干净请求 |
总计:30/30 测试通过
性能对比
| 浏览器 | 检测率 | 速度 | 资源占用 |
|---|---|---|---|
| 标准 Chromium | 95% 被检测 | 快 | 低 |
| Puppeteer Stealth | 60% 被检测 | 快 | 低 |
| Playwright | 70% 被检测 | 快 | 低 |
| Selenium | 90% 被检测 | 慢 | 高 |
| CloakBrowser | 0% 被检测 | 快 | 中 |
高级功能
自定义指纹定义
1from cloakbrowser import CustomFingerprint
2
3fp = CustomFingerprint(
4 user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
5 platform='Win32',
6 language='en-US',
7 hardware_concurrency=8,
8 device_memory=8,
9 max_touch_points=0,
10 vendor='Google Inc.',
11 renderer='ANGLE (NVIDIA, NVIDIA GeForce RTX 3080)',
12 screen_resolution=(1920, 1080),
13 color_depth=24,
14 timezone='America/New_York'
15)
16
17browser = StealthBrowser(fingerprint=fp)
社区与资源
- GitHub: CloakHQ/CloakBrowser
- 文档: https://cloakbrowser.readthedocs.io
- Discord: 加入社区
相关文章
免责声明
请负责任地使用。 CloakBrowser 用于合法的自动化、测试和数据收集。务必:
- 尊重 robots.txt 和服务条款
- 不要用过多请求压垮服务器
- 使用合理的请求速率
- 考虑您所在司法管辖区的法律影响
最后更新:2026-05-08 | Stars:2,431+ | 协议:MIT

Have questions or ideas? Feel free to leave a comment below. Sign in with GitHub to join the discussion.