![图片]()

介绍

Apache-2.0 协议。说白了就是把无头浏览器整个用 Rust 重写了一遍:不塞 Chromium,不装 Node,下下来一个二进制就能跑,页面里的 JS 照样交给 V8 执行。【点评:别人的思路是"先装个浏览器再拿脚本遥控它",它是"浏览器本身就这么点大"】作者是 h4ckf0r0day,官网 obscura.sh;Cloudflare 做自家 Kitesurf 浏览器时,第一版原型就参考了这个项目。

上手成本基本为零。下载对应平台的压缩包解压,直接 obscura fetch https://example.com --dump markdown 就能把页面转成 md;要常驻的话 docker run -d -p 127.0.0.1:9222:9222 h4ckf0r0day/obscura 起个 CDP 服务,Puppeteer、Playwright 原来的代码换个 endpoint 就能连。Docker 镜像基于 distroless,没 shell 没包管理器,压缩后约 57MB。

有个默认行为值得知道:它会拦掉指向内网地址的请求(防 SSRF),拿它测本地 dev server 要加 --allow-private-network。

特征

🪶 常驻内存 30MB 上下,无头 Chrome 动辄 200MB 起步
⚡ 页面加载 85ms 左右的量级,启动几乎没有等待
📦 单文件约 70MiB,无 Chrome、无 Node、无系统依赖
🔌 实现了 Chrome DevTools Protocol,Puppeteer、Playwright 直连
🖼️ 自带渲染引擎,截图、录屏、导 PDF 都不必拉 Chromium
🕵️ 隐身模式:指纹随机化 + 3520 个追踪域名拦截,navigator.webdriver 是 undefined
🤖 自带 MCP server,Claude Desktop、Cursor 这类客户端能直接调
📝 --dump markdown 把渲染后的页面转成 Markdown,喂大模型刚好
🚀 --concurrency 25 一把并行抓多个 URL
🧩 渲染引擎还是独立实现,长尾 CSS、媒体播放这些地方跟 Chromium 会有出入

开源地址