CloakBrowser:2.4K⭐隐形浏览器,通过所有机器人检测测试
CloakBrowser是CloakHQOpen Source的隐形Chromium浏览器,2.4K+ Stars,通过所有30个机器人检测测试,是Playwright的即插即用替代品,支持源代码级指纹补丁。
Go
Java
JavaScript
Python
应用领域: Ai Tools
{</* resource-info */>}
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 源代码:
from cloakbrowser import StealthBrowser
# 启动隐形浏览器
browser = StealthBrowser(
headless=True, # 无头模式下仍然无法检测
fingerprint='desktop_chrome_win11', # 预定义配置文件
proxy='http://user:pass@proxy:8080' # 可选代理
)
# 访问受保护网站
page = browser.new_page()
page.goto('https://bot-protected-site.com')
# 提取数据而不触发检测
content = 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. 动态指纹轮换 #
from cloakbrowser import FingerprintRotator
# 每10个请求轮换指纹
rotator = FingerprintRotator(
profiles=['desktop_chrome_win11', 'desktop_firefox_mac'],
rotation_interval=10
)
for url in url_list:
profile = rotator.get_next()
browser = StealthBrowser(fingerprint=profile)
page = browser.new_page()
page.goto(url)
# ... 提取数据
browser.close()
架构 #
核心组件 #
┌─────────────────────────────────────────┐
│ CloakBrowser 核心 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │指纹管理器│ │补丁引擎 │ │代理路由器│ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │
│ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │
│ │Canvas │ │WebGL │ │WebDriver│ │
│ │噪声注入 │ │伪装 │ │补丁 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────┘
│
┌───────▼───────┐
│ Chromium │
│ (已修补) │
└───────────────┘
检测规避技术 #
| 技术 | 实现方式 | 有效性 |
|---|---|---|
| Canvas 噪声 | 逐像素随机化 | 击败 canvas 指纹识别 |
| WebGL 伪装 | 伪造 GPU 厂商/渲染器 | 通过 WebGL 检测 |
| WebDriver 补丁 | 移除 navigator.webdriver | 通过自动化标志检查 |
| 插件模拟 | 真实插件列表 | 通过插件枚举 |
| 时区伪装 | 匹配代理位置 | 避免时区不匹配 |
| 字体列表掩码 | 常见系统字体 | 避免基于字体的检测 |
| 硬件并发 | 真实 CPU 核心数 | 通过 Performance API |
| 内存伪装 | 真实内存值 | 避免基于内存的检测 |
安装 #
# 克隆仓库
git clone https://github.com/CloakHQ/CloakBrowser.git
cd CloakBrowser
# 安装依赖
pip install -r requirements.txt
# 下载修补版 Chromium
python setup.py --download-chromium
# 运行机器人检测测试
python test_bot_detection.py
# 预期输出:30/30 测试通过
使用示例 #
基础网络爬虫 #
from cloakbrowser import StealthBrowser
browser = StealthBrowser()
page = browser.new_page()
# 爬取受保护的电商网站
page.goto('https://protected-shop.com/products')
products = page.query_selector_all('.product')
for product in products:
name = product.query_selector('.name').inner_text()
price = product.query_selector('.price').inner_text()
print(f"{name}: {price}")
browser.close()
代理轮换 #
from cloakbrowser import StealthBrowser, ProxyRotator
proxies = [
'http://user1:pass1@proxy1:8080',
'http://user2:pass2@proxy2:8080',
'http://user3:pass3@proxy3:8080',
]
rotator = ProxyRotator(proxies)
for i, url in enumerate(urls):
proxy = rotator.get_next()
browser = StealthBrowser(proxy=proxy)
page = browser.new_page()
page.goto(url)
# ... 爬取
browser.close()
会话持久化 #
from cloakbrowser import StealthBrowser
# 保存会话(cookies、localStorage)
browser = StealthBrowser()
page = browser.new_page()
page.goto('https://site.com/login')
page.fill('#username', 'user')
page.fill('#password', 'pass')
page.click('#login')
# 保存会话状态
browser.save_session('session.pkl')
# 之后恢复会话
browser = StealthBrowser(session='session.pkl')
page = browser.new_page()
page.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% 被检测 | 快 | 中 |
高级功能 #
自定义指纹定义 #
from cloakbrowser import CustomFingerprint
fp = CustomFingerprint(
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
platform='Win32',
language='en-US',
hardware_concurrency=8,
device_memory=8,
max_touch_points=0,
vendor='Google Inc.',
renderer='ANGLE (NVIDIA, NVIDIA GeForce RTX 3080)',
screen_resolution=(1920, 1080),
color_depth=24,
timezone='America/New_York'
)
browser = StealthBrowser(fingerprint=fp)
社区与资源 #
- GitHub: CloakHQ/CloakBrowser
- 文档: https://cloakbrowser.readthedocs.io
- Discord: 加入社区
相关文章 #
免责声明 #
请负责任地使用。 CloakBrowser 用于合法的自动化、测试和数据收集。务必:
- 尊重 robots.txt 和服务条款
- 不要用过多请求压垮服务器
- 使用合理的请求速率
- 考虑您所在司法管辖区的法律影响
最后更新:2026-05-08 | Stars:2,431+ | 协议:MIT