













先收藏,回头一定用得上。
最近在 GitHub Trending 上看到一个项目,两眼放光——一个用 Rust 从零写的无头浏览器,内存占用只有 Chrome 的 1/7,页面加载速度快 6-10 倍,还内置了反指纹检测和 AI Agent 的 MCP 协议支持。两个月 15k Star,增长速度堪比当年的 ripgrep。
这个项目叫 Obscura。
一句话:用 Rust 写的、面向 AI Agent 和 Web Scraping 的开源无头浏览器。
GitHub 地址:h4ckf0r0day/obscura
核心卖点:
关键数据:
| 指标 | 数值 |
|---|---|
| Star | 15.5k |
| Fork | 1,000 |
| 贡献者 | 31+ |
| 最新版本 | v0.1.8 |
| 协议 | Apache-2.0 |
| 语言 | Rust (99.7%) |
这才是最炸裂的部分。Obscura 官方提供了和 Headless Chrome 的基准测试对比:
| 指标 | Obscura | Headless Chrome |
|---|---|---|
| 内存占用 | 30 MB | 200+ MB |
| 二进制体积 | 70 MB | 300+ MB |
| 静态页面加载 | 51 ms | ~500 ms |
| JS + XHR 页面 | 84 ms | ~800 ms |
| 动态渲染页面 | 78 ms | ~700 ms |
| 启动时间 | 即时 | ~2s |
快了不是一点半点。特别是内存,30MB 对比 200MB+,如果你跑 100 个并发爬虫实例,差距就是 3GB vs 20GB。
这个性能差距的来源很直接:Obscura 用 Rust 写浏览器内核,没有 Chromium 那套庞大的渲染管线和多进程架构。它专注于执行 JavaScript 和提取数据,不需要把像素画到屏幕上。
Obscura 的 Rust Workspace 拆成了 8 个独立的 crate,每个负责一块核心能力:
MERMAID_BLOCK_0
这种设计意味着每个模块可以独立测试和替换。比如你不需要 MCP 功能,就只引入核心的 browser 和 cdp crate。
CLI 提供了四个主要命令:
obscura serve — 启动 CDP WebSocket 服务器,让 Puppeteer/Playwright 连接obscura fetch <URL> — 抓取并渲染单个页面obscura scrape <URLs...> — 并行抓取多个 URL(支持并发 worker 配置)obscura mcp — 启动 MCP Server,给 AI Agent 用做爬虫的人都知道,被反爬检测到有多头疼。Obscura 直接把反检测做进了浏览器内核,不需要你额外装插件或写 workaround。
编译时加一个 feature flag 就行:
cargo build --features stealth
隐身模式的能力清单:
navigator.webdriver = undefined:最基础也最关键的一步native code 字符串特征这些不是外挂式的修改,而是直接在浏览器引擎层面实现的。相比用 puppeteer-extra-plugin-stealth 这种 JS 层面的 patch,可靠性高了一个档次。
这是 Obscura 区别于所有其他无头浏览器的地方。
obscura mcp 命令启动一个 MCP (Model Context Protocol) Server,支持 stdio 和 HTTP 两种传输方式。Claude Desktop、Cursor 等 AI 工具可以直接连接。
提供的 MCP 工具:
| 工具名 | 功能 |
|---|---|
browser_navigate |
导航到 URL |
browser_snapshot |
获取页面快照 |
browser_click |
点击元素 |
browser_fill |
填充表单 |
browser_type |
输入文字 |
browser_press_key |
按键 |
browser_select_option |
选择下拉选项 |
browser_evaluate |
执行 JavaScript |
browser_wait_for |
等待条件满足 |
browser_network_requests |
获取网络请求 |
browser_console_messages |
获取控制台消息 |
browser_close |
关闭浏览器 |
看出来了吗?这套工具和 Hermes Agent 的 browser 工具集几乎一一对应。这意味着你现有的 AI Agent 工作流几乎不用改代码,把底层换成 Obscura 就行。
Docker 一行搞定:
docker run -p 9222:9222 ghcr.io/h4ckf0r0day/obscura:latest serve
镜像只有 57MB,多架构支持(amd64 + arm64),基于 distroless,安全且轻量。
安装(Arch Linux):
或者直接下载二进制:
# Linux x86_64
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-linux-amd64
chmod +x obscura-linux-amd64
sudo mv obscura-linux-amd64 /usr/local/bin/obscura
抓取一个页面:
obscura fetch https://example.com --format markdown
输出格式支持:HTML、纯文本、链接列表、Markdown、资源列表(NDJSON)、原始二进制。
并行爬取:
obscura scrape https://example.com https://example.org --workers 10 --format markdown
配合 Puppeteer 使用:
# 启动 CDP 服务
obscura serve --port 9222
// Puppeteer 代码,改一行连接地址就行
const browser = await puppeteer.connect({
browserURL: 'http://localhost:9222'
});
Obscura 特别适合:
但需要注意:
Obscura Cloud(托管版本)在开发中,提供住宅代理池和托管基础设施,目前可以排队等邀请。
项目地址:github.com/h4ckf0r0day/obscura
试过了?评论区说说你的体验。还没试?收藏起来周末折腾。
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。