GitHub Daily
隐身 Chromium:30/30 检测全过的反爬虫浏览器
CloakBrowser · Playwright 零配置替代方案
2026-05-12
写爬虫最痛苦的是什么?不是分析页面结构,不是处理异步请求,而是——刚跑起来就被 Cloudflare 给 Ban 了。今天推荐的这个开源项目,直接从 Chromium 源码层面修改指纹,让你的自动化脚本看起来就是一个普通用户在浏览网页。
📋 项目速览
项目名称
CloakBrowser
GitHub Stars
6,043 ⭐
今日增长
+1,325
检测通过率
30/30
编程语言
Python / JS
许可证
MIT
😤它能解决什么问题?
做 Web 自动化、爬虫或 AI Agent 的时候,你一定遇到过这些情况:
常见的反爬虫困境
-
用 Playwright/Puppeteer 打开页面,立刻被检测为机器人
-
Cloudflare 弹出人机验证,怎么都过不去
-
reCAPTCHA v3 得分只有 0.1,一看就是 bot
-
换了代理、换了 IP,还是被 Ban
-
网站加了 WebGL/Canvas 指纹检测,假的 UA 根本没用
市面上的解决方案主要有三类,但都有明显缺陷:
| 方案 | 原理 | 问题 |
|---|---|---|
| JS 注入 | ||
| 运行时往页面注入脚本来修改指纹 | ||
| 注入本身可被检测,Chrome 一升级就失效 | ||
| 配置补丁 | ||
| 修改 Chrome 配置文件 | ||
| 维护不活跃,检测率一般 | ||
| 预制浏览器 | ||
| 预先配置好的浏览器镜像 | ||
| 众用指纹相同,反而更容易被识别 | ||
✨核心亮点
**CloakBrowser 的核心思路是:不修改配置,不注入 JS,直接修改 Chromium 的 C++ 源码。**在编译阶段对指纹特征进行原生修改,编译出来的二进制跟标准 Chrome 几乎一模一样——因为它就是一个真的 Chrome,只是从娘胎里生下来就被改了指纹。
-
🔧 49 项 C++ 源码级补丁覆盖 Canvas、WebGL、Audio、字体、GPU、屏幕、时区、WebRTC 等 49 个指纹维度
-
🎯 30/30 检测全过Cloudflare Turnstile、FingerprintJS、BrowserScan 等主流检测系统全部通过
-
🖥️ reCAPTCHA v3 得分 0.9人类级别得分,服务器端验证,非 JS 模拟
-
🐒 humanize 模式鼠标走贝塞尔曲线、键盘逐字输入、滚动模拟真人操作
-
🔄 Playwright 零配置替换只需改一行 import 代码,现有的 Playwright 脚本直接迁移
-
🛡️ 自动更新二进制自动下载更新,跟随 Chromium 版本同步
修复的自动化信号
-
navigator.webdriver → false(源码层面修复)
-
navigator.plugins.length → 5(真实插件列表)
-
window.chrome → 正常对象(像真 Chrome 一样)
-
UA 字符串无 Headless 泄露
-
WebRTC 不再泄露本地 IP
-
Canvas/WebGL 返回看似正常但无法关联的数据
📊实战检测结果
30/30
检测站点通过率
0.9
reCAPTCHA v3 得分
PASS
Cloudflare Turnstile
NORMAL
BrowserScan (4/4)
与普通 Playwright 的对比:
| 检测项 | 普通 Playwright | CloakBrowser |
|---|---|---|
| reCAPTCHA v3 | 0.1(bot) | 0.9(human)✅ |
| Cloudflare | ❌ 挂 | ✅ 通过 |
| FingerprintJS | ❌ 检测到 | ✅ 通过 |
| navigator.webdriver | true | false ✅ |
| UA 字符串 | HeadlessChrome | Chrome/146.0.0.0 ✅ |
🎯实战场景展示
场景一:大模型数据采集
用 AI Agent(如 browser-use、Crawl4AI)访问需要登录的网站抓取数据,普通浏览器会被立即拦截。CloakBrowser 可以持续稳定运行数小时而不触发反爬机制。
场景二:竞争情报监控
监控竞争对手的价格、库存、评论等动态数据。Cloudflare、DataDome 等反爬系统让普通爬虫束手无策,CloakBrowser 可以像真人一样访问并获取数据。
场景三:UI 自动化测试
在真实浏览器环境中进行端到端测试,测试那些依赖反爬虫防护的页面,确保用户体验与真人完全一致。
🚀上手指南
安装
# Pythonpip install cloakbrowser# JavaScript (with Playwright)npm install cloakbrowser playwright-core# Docker 快速测试docker run --rm cloakhq/cloakbrowser cloaktest
基础用法(Python)
# 之前 - Playwrightfrom playwright.sync_api import sync_playwright pw = sync_playwright().start() browser = pw.chromium.launch()# 现在 - CloakBrowser(只需改 import)from cloakbrowser import launch browser = launch()
启用人类行为模式
from cloakbrowser import launch# 基础隐身模式browser = launch()# 人类行为模式(鼠标曲线、键盘时序、滚动模拟)browser = launch(humanize=True)# 谨慎模式(更慢、更像真人)browser = launch(humanize=True, human_preset="careful")
配合代理使用
from cloakbrowser import launch# HTTP 代理browser = launch(proxy="http://user:pass@proxy:8080")# SOCKS5 代理browser = launch(proxy="socks5://user:pass@proxy:1080")# 根据代理 IP 自动匹配时区和语言browser = launch(proxy="http://proxy:8080", geoip=True)
持久化会话
# 保存 cookies 和 localStorage,下次无需重新登录from cloakbrowser import launch_persistent_context ctx = launch_persistent_context("./my-profile", headless=False) page = ctx.new_page() page.goto("https://example.com")# 下次运行时会自动恢复会话状态
JavaScript 用法
// ESM 导入import { launch } from'cloakbrowser';// 基本用法const browser = await launch();const page = await browser.newPage();await page.goto('https://protected-site.com');await browser.close();
⚖️横向对比
| 方案 | 原理 | 维护 | 兼容性 | 通过率 |
|---|---|---|---|---|
| CloakBrowser | C++ 源码修改 | 活跃 ✅ | Playwright ✅ | 30/30 |
| playwright-stealth | ||||
| JS 注入 | ||||
| 一般 | ||||
| Playwright ✅ | ||||
| 一般 | ||||
| undetected-chromedriver | ||||
| 配置层补丁 | ||||
| 不活跃 | ||||
| Selenium | ||||
| 一般 | ||||
| Camoufox | ||||
| C++ 修改 (Firefox) | ||||
| 一般 | ||||
| 自有一套 ❌ | ||||
| 较高 | ||||
📝 今日总结
-
CloakBrowser 通过 49 项 C++ 源码补丁,从编译层面固化指纹特征
-
30/30 主流检测系统全过,reCAPTCHA v3 得分 0.9(人类级别)
-
零配置迁移 Playwright/Puppeteer 脚本,一行 import 替换
-
humanize 模式模拟真人操作行为,解决行为层面的检测
-
适用场景:大模型数据采集、竞争情报、UI 自动化测试
🔗 前往 GitHub 了解详情
每日开源
有深度 · 有前沿 · 有价值