Web Scraping
阅读时间 8 分钟
2026 年 5 月 8 日,一个叫 CloakBrowser 的开源项目冲上 GitHub Trending 当日榜,24 小时内斩获 482+ Stars,累计 2.4K+ Stars
它解决的问题很直接:为什么用 Playwright/Puppeteer 爬网站老是触发反爬
市面上常见的所谓"隐身浏览器"要么是 JavaScript 注入(playwright-stealth),要么是配置层的小把戏(修改 User-Agent 和 WebDriver 标志)。Cloudflare Turnstile、FingerprintJS、reCAPTCHA v3 这些现代反检测系统早就把这些手法全部标记为机器人了
CloakBrowser 的做法完全不同——直接在 Chromium C++ 源码层修改指纹。不是在外面裹一层伪装,而是让浏览器二进制本身就是一个"正常浏览器"
核心原理:源码级指纹补丁
CloakBrowser 在 Chromium 146 的 C++ 源码上打了 49 个指纹补丁,覆盖这些检测维度:
- Canvas 指纹 — 修正 toDataURL 生成的不一致
- WebGL 渲染 — 统一 GPU 厂商和渲染器字符串
- AudioContext — 修复音频指纹的唯一性
- 字体枚举 — 系统已安装字体列表
- 屏幕参数 — colorDepth、pixelRatio、availWidth 等
- WebRTC — ICE 候选 IP 隔离,支持代理出口 IP 伪造
- 网络时序 — DNS 解析时间、Connect 时间归零,移除代理信号
- 自动化信号 — navigator.webdriver 为 false,CDP 输入行为正常化
关键是这些修改是在 编译阶段完成 的,运行时没有任何 JavaScript 注入或 flag 修改。反检测系统看到的是一套完全正常的浏览器行为链
实测成绩:30/30 全过
项目方在 README 里贴出了详细的测试对比数据,这里列几个关键项:
| 检测服务 | 原版 Playwright | CloakBrowser |
| reCAPTCHA v3 | 0.1(确定机器人) | 0.9(正常用户) |
| Cloudflare Turnstile(非交互) | 失败 | 通过 |
| Cloudflare Turnstile(托管) | 失败 | 单点通过 |
| FingerprintJS | 检测到机器人 | 通过 |
| BrowserScan(4 项评分) | 检测到 | 全部正常 |
| bot.incolumitas.com | 13 项失败 | 仅 1 项(WEBDRIVER 规范) |
| deviceandbrowserinfo.com isBot | true | false |
| ShieldSquare | 拦截 | 通过 |
这里特别强调:reCAPTCHA v3 的 0.9 分是服务端验证的,不是只看前端返回的分数。这个成绩意味着大多数网站的机器人检测在第一关就会放行,根本不会触发 CAPTCHA
安装与配置:只要 3 行代码
Python 版本
pip install cloakbrowser
from cloakbrowser import launch
browser = launch()
page = browser.new_page()
page.goto("https://your-target-site.com")
# 你的爬虫代码在这里
browser.close()
从 Playwright 迁移过来改一行 import 就行了:
# 原来的
# from playwright.sync_api import sync_playwright
# pw = sync_playwright().start()
# browser = pw.chromium.launch()
# 换成
from cloakbrowser import launch
browser = launch()
JavaScript / Node.js 版本
npm install cloakbrowser playwright-core
import { launch } from 'cloakbrowser';
const browser = await launch();
const page = await browser.newPage();
await page.goto('https://your-target-site.com');
await browser.close();
也支持 Puppeteer:import { launch } from 'cloakbrowser/puppeteer'
Docker 一键试用
docker run --rm cloakhq/cloakbrowser cloaktest
第一次运行会自动下载 stealth Chromium 二进制(约 200MB),会缓存到本地,后续使用不需要重复下载
进阶功能
Humanize 模式:人类行为模拟
开启 humanize=True 后,CloakBrowser 会自动模拟:
- 鼠标移动 — Bézier 曲线路径,不是直线跳转
- 键盘输入 — 逐字符输入,带真实的时间间隔
- 滚动模式 — 模拟人类阅读节奏的滚动
这些行为用 CDP 隔离世界 + trusted dispatch 实现,不会被行为分析系统标记
代理 IP 自适应时区和语言
pip install cloakbrowser[geoip]
launch(proxy="socks5://user:pass@host:port", geoip=True)
自动检测代理出口 IP 的地理位置,设置对应时区和语言。WebRTC ICE 候选 IP 也会同步伪造,防止 real IP 泄露
持久化 Profile
launch_persistent_context()
保持 Cookie 和 localStorage 跨会话持久化,绕过 incognito 模式检测。适合需要登录态的爬虫场景
指纹种子随机化
每次启动自动生成随机指纹种子(不需要任何参数)。Canvas、WebGL、Audio 等指纹会在合理范围内变化,不会所有实例用同一套指纹
与同类工具的对比
| 工具 | 原理 | 检测难度 | 价格 |
| playwright-stealth | JS 注入 | 极易检测 | 免费 |
| undetected-chromedriver | 配置 + JS 注入 | 中等 | 免费 |
| Multilogin / GoLogin / AdsPower | 商业 Chromium 修改 | 中等 | $30-100/月 |
| CloakBrowser | C++ 源码级补丁 | 极难检测 | 免费开源 |
商业方案中 Multilogin 等功能类似但价格不低,而且闭源。CloakBrowser 是 MIT 协议完全开源,没有用量限制,没有订阅费
值得注意的限制
- CloakBrowser 不解决 CAPTCHA — 它的目标是让 CAPTCHA 不出现。如果目标网站已经弹了 CAPTCHA,它不会自动识别填写
- 不自带代理轮询 — 需要自己配置代理池,CloakBrowser 只负责让每个代理出来的流量看起来像正常用户
- 需要关注 Chromium 版本更新 — 每次 Chrome 大版本更新可能引入新的检测维度,项目维护者会跟着更新二进制,使用内置的自动更新功能即可
适用于哪些场景
- Web scraping / 数据采集 — 采集被 Cloudflare 保护的网站数据
- AI Agent 浏览器自动化 — 配合 browser-use、Crawl4AI、Scrapling、Stagehand 等框架
- SEO 监测 — 查看竞争对手网站的搜索引擎排名和内容更新
- 广告验证 — 检查广告在目标市场的实际展示情况
- 价格监测 — 采集受 bot 保护的电商网站价格
- 测试自动化 — 需要对复杂反检测流程做测试的场景
总结
CloakBrowser 走了一条和其他隐身浏览器完全不同的路——不是在 JS 层或配置层修补,而是直接改 Chromium 的 C++ 源码。49 个指纹补丁 + 自动更新二进制 + humanize 行为模拟,让它在现代反检测体系中拿到了非常罕见的通过率
相比商业方案 Multilogin 每月几十美元的费用,CloakBrowser 完全免费开源。如果你正在做 Web scraping 或者需要浏览器自动化并且频繁遭遇反爬,这可能是 2026 年最值得关注的开源项目之一
项目地址:github.com/CloakHQ/CloakBrowser
安装命令:pip install cloakbrowser 或 npm install cloakbrowser