导语:当Chrome占用200MB以上内存成为常态,一位开发者用Rust打造了一款仅需30MB的无头浏览器——Obscura。它不仅速度快,还内置反检测能力和追踪器拦截,被认为是Puppeteer和Playwright的直接替代方案。
来源:本文综合编译自 @0xJokker 的 Twitter 推文及 Obscura 官方 GitHub 仓库。
项目概述
Obscura 是一款基于 Rust 编写的开源无头浏览器引擎,专为 AI 代理自动化和网页爬虫场景设计。它通过 V8 引擎运行真实 JavaScript,支持 Chrome DevTools Protocol(CDP),可作为 headless Chrome 的直接替代品,无缝接入现有的 Puppeteer 和 Playwright 工作流。
核心特性一览:
- 内存占用:仅 30MB(对比 Chrome 的 200MB+)
- 页面加载速度:85ms(Chrome 约 500ms)
- 二进制体积:70MB(Chrome 约 300MB)
- 内置反检测:每次会话生成不同的浏览器指纹
- 追踪器拦截:自动屏蔽 3500+ 追踪脚本
- 零外部依赖:无需 Node.js,单一二进制文件
性能对比
根据官方基准测试,Obscura 在各项指标上均显著优于 headless Chrome:
| 指标 | Obscura | Headless Chrome |
|---|---|---|
| 内存占用 | 30MB | 200MB+ |
| 二进制体积 | 70MB | 300MB+ |
| 反检测能力 | 内置 | 无 |
| 页面加载 | 85ms | ~500ms |
| 启动速度 | 即时 | ~2秒 |
| Puppeteer 支持 | 是 | 是 |
| Playwright 支持 | 是 | 是 |
静态 HTML 页面加载仅需 51ms,复杂动态页面(含 JavaScript 和 XHR 请求)也只需 84ms,远快于 Chrome 的 500-800ms。
核心技术亮点
1. 浏览器指纹随机化
Obscura 最大的技术亮点在于其内置的反检测机制。每个会话都会生成不同的浏览器指纹,包括 GPU 渲染、Canvas、音频上下文、电池 API 等多个维度。这意味着反爬虫脚本看到的将是一个”真实”的 Chrome 浏览器,而非自动化工具。
相比之下,Puppeteer 和 Playwright 会在 JavaScript 环境中注入 navigator.webdriver 等变量,任何反爬虫脚本都能在毫秒级检测到。
2. 追踪器自动屏蔽
内置追踪器拦截功能默认启用,可自动屏蔽超过 3500 个已知追踪脚本。这不仅保护了隐私,也大幅减少了页面加载时的额外请求。
3. 零依赖部署
单一二进制文件分发,无需安装 Node.js 或任何运行时依赖。下载后即可运行,支持 Linux、macOS 和 Windows 系统。
快速上手
下载安装
# Linux x86_64
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-x86_64-linux.tar.gz
tar xzf obscura-x86_64-linux.tar.gz
./obscura fetch https://example.com --eval "document.title"
# Linux ARM64
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-aarch64-linux.tar.gz
tar xzf obscura-aarch64-linux.tar.gz
# 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
# Docker 部署
docker run -d --name obscura -p 127.0.0.1:9222:9222 h4ckf0r0day/obscura
基础用法
# 获取页面标题
obscura fetch https://example.com --eval "document.title"
# 提取所有链接
obscura fetch https://example.com --dump links
# 渲染 JavaScript 并导出 HTML
obscura fetch https://news.ycombinator.com --dump html
# 通过代理访问
obscura --proxy socks5://127.0.0.1:1080 fetch https://example.com --dump text
# 等待动态内容加载
obscura fetch https://example.com --wait-until networkidle0
并行爬取
obscura scrape url1 url2 url3 ...
--concurrency 25
--eval "document.querySelector('h1').textContent"
--format json
启动 CDP 服务器
# 启动服务(可使用 Puppeteer/Playwright 连接)
obscura serve --port 9222
# 启用隐身模式(反检测 + 追踪器拦截)
obscura serve --port 9222 --stealth
Puppeteer 集成示例
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222/devtools/browser',
});
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com');
const stories = await page.evaluate(() =>
Array.from(document.querySelectorAll('.titleline > a'))
.map(a => ({ title: a.textContent, url: a.href }))
);
console.log(stories);
await browser.disconnect();
Playwright 集成示例
import { chromium } from 'playwright-core';
const browser = await chromium.connectOverCDP({
endpointURL: 'ws://127.0.0.1:9222',
});
const page = await browser.newContext().then(ctx => ctx.newPage());
await page.goto('https://en.wikipedia.org/wiki/Web_scraping');
console.log(await page.title());
await browser.close();
蓝队视角:应用场景
从防御者角度,Obscura 的特性为安全研究工作流带来独特价值:
威胁情报采集:在采集暗网论坛、恶意站点时,反检测能力可有效规避网站的反爬虫机制,降低被封锁的风险。
渗透测试自动化:在大规模资产扫描和漏洞验证场景中,30MB 的内存占用意味着可以在同一台服务器上并行运行更多实例,显著提升效率。
钓鱼检测与分析:自动分析可疑页面时,追踪器屏蔽功能可减少不必要的网络请求,避免触发目标的防御警报。
安全研究数据采集:对公开泄露数据源进行监控和归档时,轻量级设计适合长期运行的采集任务。
总结
Obscura 凭借 Rust 语言的内存管理优势和专为自动化场景的设计,在性能和功能上实现了对 headless Chrome 的全面超越。对于需要大规模网页采集、AI 代理自动化或安全研究的场景,它提供了一个高效、隐蔽、零依赖的解决方案。
该项目采用 Apache-2.0 开源许可证,完全免费使用,核心引擎不会进行功能限制。云端托管版本(Obscura Cloud)正在开发中,将提供托管基础设施、住宅代理和专属支持。
项目地址:https://github.com/h4ckf0r0day/obscura
参考资料:
- Obscura GitHub 仓库 – h4ckf0r0day,2026
- @0xJokker Twitter 推文 – 发表于 2026年7月
版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。














暂无评论内容