Obscura:Rust驱动的超轻无头浏览器,AI爬虫专用,70MB大小30MB内存挑战Headless Chrome

Obscura 是一款由 Rust 语言打造的轻量无头浏览器,专门为 AI Agent 和爬虫工作负载设计。如果你认为 Headless Chrome 体积臃肿、抗识别能力弱,这个项目绝对值得深入了解。
二进制大小:70 MB
内存占用:30 MB
页面加载:85 ms
Obscura 是什么?
Obscura 本质上是一个内嵌 V8 引擎的 headless browser engine,整体使用 Rust 编写,因此能真实执行 JavaScript。它完整支持 Chrome DevTools Protocol,这意味着你现有的 Puppeteer 或 Playwright 脚本可以直接通过 WebSocket 连接过来,无需更换任何调用接口。
该项目仓库已公开在 GitHub(h4ckf0r0day/obscura),目前 star 数超过 16k,fork 超过 1.2k,遵循 Apache 2.0 许可。官方正推进 Obscura Cloud 托管服务,但核心引擎将持续保持开源。
核心功能
Obscura 提供了三种交互方式,适应不同使用场景:
- CLI 直接抓取:单页面使用
obscura fetch,批量任务执行obscura scrape,自带并发和代理支持。 - CDP 服务:通过
obscura serve启动一个 CDP 兼容服务,Puppeteer/Playwright 使用 WebSocket 接入即可。 - MCP 服务:AI Agent 可借助 Model Context Protocol 直接调用浏览器的自动化能力。
此外,它还内置了 stealth 模式。开启后,浏览器指纹会被随机化,tracker 脚本被阻断,cookie 和跳转顺序在同一会话中稳定保持,从而有效规避多数反爬检测。
快速上手安装
如果你只想尽快体验,直接下载已编译的 release 二进制是最省时的方式。官方在 GitHub 发布页提供了各平台的预编译包。
# macOS Apple Silicon
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-aarch64-macos.tar.gz
tar xzf obscura-aarch64-macos.tar.gz
./obscura fetch https://example.com --eval "document.title"
习惯容器的开发者也可以直接拉取 Docker 镜像,一条命令启动 CDP 服务:
docker run -d --name obscura -p 127.0.0.1:9222:9222 h4ckf0r0day/obscura
如果需要从源码编译,请确保已安装 Rust 1.75 及以上版本。首次编译预计耗时 5 分钟,因为需要从源码构建 V8 引擎。
git clone https://github.com/h4ckf0r0day/obscura.git
cd obscura
cargo build --release
# macOS Apple Silicon 启用 stealth 特性
cargo build --release --features stealth
适用场景与局限
Obscura 对于那些已经在使用 Puppeteer 或 Playwright 做自动化,却一直被 Chrome 的体积、内存占用和反检测机制所困扰的开发者,堪称“插拔式”替代方案。从 CDP 层面切换过来几乎不需要额外学习成本。
但它并不适合两类用户:一是希望将浏览器当成日常桌面浏览器正常使用的人,因为目前的开发重点在于自动化操控,对完整的交互体验支持有限;二是在旧版系统上运行的用户——release 包要求 glibc ≥ 2.35,而 Windows 用户目前只能通过 zip 包手动解压使用,没有 Docker 那样的一键式便利。
另一个需要特别留意的点是:Obscura 只解决页面渲染和自动化控制问题,不负责 IP 段拦截或账号风控。如果你的最大痛点在于目标站点已经能准确识别机器流量,仅更换浏览器引擎可能还不够,往往还需要配合代理池等基础设施。
同类方案对比
如果你只是需要获取静态 HTML,curl 或 Python requests 这类无浏览器方案更为轻便,完全不必动用浏览器。对于兼容性最强、反爬效果最稳的需求,Playwright + 定制版 Chrome 依然是可靠选择,尽管体积和启动耗时会高出许多。综合来看,Obscura 更适宜作为内置基础设施融入 Agent pipeline,而非为偶尔抓取页面的个人用户设计;当长期运行的脚本迁移到 Obscura 后,内存和镜像体积会显著下降,运维成本也随之减小。