自动化#网页爬取#浏览器自动化

Moli Browser:为 Agent 按需排版的 Rust 无头浏览器

Moli Browser 用 Rust 为 AI Agent 提供网页读取与自动化,默认访问 DOM,需要坐标或截图时才执行真实排版,并支持三种标准自动化协议。

项目资料

GitHub Ecosystem
仓库地址github.com/lexmount/moli
许可证
Apache-2.0
主语言
Rust
星标
23,067
核查时间
2026-11-09

以上快照资料以核查当日为准,可能随版本或运营策略变化。

做网页抓取和 Agent 浏览器任务时,很多请求只需要 DOM、文本或 JavaScript 结果,并不需要每次都把整页布局、绘制成像素。Moli Browser 是 Lexmount 开源的 Rust 无头浏览器:默认从浏览器运行时读取结构,遇到坐标、截图或 screencast 请求时才按需生成布局与画面。它支持 Linux、macOS、Windows,CLI、CDP、WebDriver Classic 和 WebDriver BiDi 都由同一个浏览器内核提供。

Moli Browser 将 HTML5 游戏页面渲染后通过 Chrome DevTools 检查

Moli 的展示图呈现了一个关键边界:它能按需进行软件渲染并让 DevTools 检查页面,但定位仍是无头 Agent 浏览器,而不是供人持续操作的桌面浏览器。

核心功能

  • DOM 优先读取:moli fetch --dump markdown、HTML、JSON 和语义树输出可以直接读取 DOM、运行 JavaScript、检查网络与存储;这些操作默认不触发真实排版和绘制。
  • 按需生成几何与像素:加上 --layout 后,Moli 才构建真实布局,用于元素几何、命中测试、坐标输入、截图和 screencast。每次截图都会从当前 DOM 与样式重新生成画面,不维护常驻 GPU 合成器或窗口。
  • 一套内核接三种自动化协议:moli serve 同时提供 CDP、WebDriver Classic 与 WebDriver BiDi;README 还给出 Playwright 通过 CDP 连接的示例,不需要另装 ChromeDriver 或 GeckoDriver。
  • 独立浏览器运行时:项目不是 Chromium 封装,使用 Rust 组件组合 HTML 解析、V8 JavaScript、Servo/Stylo 样式、Taffy 与 Parley 布局,以及 CPU 软件绘制。
  • 跨平台及网络选项:支持 Linux、macOS、Windows;配置项包括 profile、cookie、HTTP cache、proxy、超时和私有网络策略。页面读取时也可以选择开启图像、字体、音频、视频等资源族。

性能数据

项目 README 报告了两类基准。混合网页抓取测试含 192 个中英文公开网址,只有拿到 JavaScript 执行后的有效内容才算成功;Lexbench 则比较标准自动化任务。两者测试对象和指标不同,不能合并成一个笼统的「比 Chrome 快」结论。

项目方测试Moli对照
192 站点有效页面数103 / 192(53.6%)Chrome Headless 101(52.6%);Lightpanda 85(44.3%)
混合抓取中位 RSS73 MiBChrome Headless 773 MiB;Lightpanda 40 MiB
Lexbench 可比任务通过率81.88%(1,071 / 1,308)Chrome 99.85%;Lightpanda 53.29%
示例 Agent 工作负载峰值 PSS102.46 MiBChromium 348.82 MiB

以上是项目 README 所列测试结果;Lexbench 的详细方法与条件见其 五引擎报告,其中 81.88% 对应 Moli 0.1.1 的 2026-08-13 评测。不同测试集合和版本的结果显示 Moli 在选定任务上的资源与兼容性折中,不等于任意网站或自动化脚本都能得到相同结果。

典型使用场景

  • 知识库抓取与检索:批量读取网页正文、抽取 Markdown 或语义树,减少为纯文本任务持续维持完整画面所需的资源。
  • 浏览器 Agent 与自动化框架:需要 CDP、WebDriver BiDi 或 Playwright 接口,同时希望同一进程兼顾结构查询与可选截图的工程团队。
  • 自建评测环境:在 Linux、macOS 或 Windows 上启动本地无头浏览器,运行网页操作任务并按需启用真实布局。

快速上手

Linux 或 macOS 安装命令来自项目 README:

curl --proto '=https' --tlsv1.2 -fsSL \
  https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh | sh

moli fetch \
  --dump markdown \
  --wait-until done \
  https://example.com

需要截图时添加 --layout --dump screenshot;启动自动化服务则运行 moli serve,并可用 moli serve --layout 开启真实几何和截图能力。Windows 安装器和其余参数见 官方仓库。

Moli 的按需排版流程是「保留浏览器完整能力,但把真实布局与绘制延后到请求发生时」:图示中的工作树在读取画面后会释放,便于理解它与常驻渲染树的区别。

Moli Browser 按需排版流程:默认读取 DOM,需要几何或图像时才重建布局与绘制

小结

Moli Browser 适合要在自建 Agent 或抓取流水线里运行轻量无头浏览器、且大多数操作以 DOM 为主的开发者。它支持标准自动化协议,也能在需要时生成截图;但它没有 GUI 窗口、GPU 合成器或持续保留的多帧绘制状态,项目也不追求 Canvas、WebGL、媒体播放与 Chrome 像素级兼容。Apache-2.0(README 同时允许选择 MIT),Rust 编写。项目方的基准可以帮助筛选目标任务,实际部署前仍应拿自己的站点和脚本验证;如需登录态共享和可见的人工接管,可对照本站的 ego lite,面向页面读取与提取的方案也可看 Lightpanda。