Moli 无头浏览器介绍

介绍

Moli 是 Lexmount 推出、Rust 编写、原生自研内核的开源无头浏览器,主打 AI Agent 网页自动化、网页抓取。不是 Chromium 的包装壳,核心设计理念:结构优先,像素按需(Structure first. Pixels on demand.)

GitHub:lexmount/moli
官网:https://browser.lexmount.com
协议:Apache-2.0 / MIT 双许可,开源可自托管;另有商业托管云服务 Lexmount Browser(独立产品)
二进制包大小:约40MB,单文件,无额外依赖,支持 Linux / macOS / Windows

设计思想

传统 Chrome Headless 无论是否需要截图、点击坐标,都会持续做完整布局渲染,内存开销巨大。
Moli 默认只维护 DOM、CSSOM、JS 运行时、网络、存储;布局、像素渲染只在你需要截图/获取元素坐标时才临时计算,用完丢弃。
对于大部分只需要提取文本、DOM 信息的 AI Agent 任务,可以大幅降低内存占用,官方测试内存约为 Chrome Headless 的 1/10 左右,启动速度更快,适合小规模 VPS 并发跑大量浏览器实例。

底层技术组件

  • 主体语言:Rust(内存安全)
  • JS引擎:V8(和Chrome相同JS引擎,保证JS兼容性)
  • CSS引擎:Stylo(Servo项目CSS引擎)
  • 布局引擎:Taffy + Parley
  • HTML解析:html5ever
  • 网络栈、Cookie、存储系统自研集成

支持能力

  1. 完整Web运行时
    HTML流式解析、DOM、CSS级联、V8 JS(ES模块、定时器、微任务、事件)、iframe、Web Worker;Fetch/XHR/WebSocket;Cookie、WebCrypto;localStorage、IndexedDB、OPFS 隔离存储(按配置文件隔离)

  2. 多种接入方式

  • CLI命令行:直接抓取网页,输出 HTML / Markdown / JSON / 语义文本树;支持选择器、等待网络、网络追踪
  • CDP(Chrome DevTools Protocol):moli serve 启动,监听 127.0.0.1:9222,Playwright、Puppeteer、Browser-use 等现有Agent框架可以直接对接,几乎不用改代码
  • WebDriver Classic / WebDriver BiDi,同一内核,不需要额外驱动(chromedriver/geckodriver)
  1. 自动化能力
    DOM查询、表单填写、点击;按需开启布局、页面截图;等待元素、等待页面加载;网络拦截、请求修改;多会话隔离。

关键限制

Moli 不是 Chrome 的完全替代品,项目文档明确边界:

  1. 无GUI可视化窗口,纯无头;无GPU合成器
  2. 不保证和Chrome像素级渲染一致
  3. Canvas、音视频媒体播放支持弱,高保真媒体页面会失败
  4. 复杂WebGL、大量CSS动画、PDF渲染支持较差

    建议策略:AI文本抽取、DOM信息抓取优先使用Moli;遇到Canvas/WebGL/复杂媒体页面时,降级回Chrome Headless

适用场景

  • AI Agent(Browser-use 这类网页智能体)作为浏览器后端
  • 大规模网页抓取、网页内容提取(语义文本、JSON结构化输出)
  • 内存受限的VPS,并发大量浏览器实例
  • 网页自动化、轻量爬虫、页面信息采集
  • 强化学习网页环境,大量并发浏览器任务
  • 存量Playwright/CDP项目,想替换笨重Chrome,降低服务器内存成本

简单上手示例

  1. 下载单二进制 moli
  2. 命令行直接抓取网页输出markdown
    moli fetch [https://example.com](https://example.com) --format markdown
    
  3. 启动CDP服务,供Playwright连接
    moli serve
    
    然后 Playwright 连接 ws://127.0.0.1:9222,即可直接使用Moli作为浏览器后端。

Moli vs Chrome Headless

项目 Moli Chrome Headless
内核 Rust自研,集成V8 完整Chromium
包体积 ~40MB单文件 几百MB
内存 低,按需布局 高,持续全量布局渲染
CDP 支持 支持
Canvas/WebGL 弱 完整支持
像素渲染 按需,不保证像素对齐 像素级完整渲染
适合 AI Agent、文本抓取、DOM提取 复杂前端、Canvas、媒体、需要精准截图自动化

总结

Moli 是面向AI智能体场景的轻量无头浏览器,最大亮点是单文件、低内存、兼容CDP,能无缝替换现有Playwright/Browser-use等Agent框架,非常适合大规模网页信息抽取。但它是结构化优先浏览器,复杂图形渲染场景能力不足,生产环境建议做降级兜底策略。