Lightpanda 无头浏览器100 页 5 秒、峰值 123MBAI 抓网页的轻量方案【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browserLightpanda 是一个从零用 Zig 编写的无头浏览器服务于 AI 代理与网页抓取自动化实测 100 页耗时 5 秒、峰值内存 123MB。Lightpanda 解决什么场景批量抓取、CI 与 AI 数据预处理无头自动化的传统路线是 Chrome Puppeteer能用但规模一上来就吃力典型有三类场景大规模网页抓取单个 headless Chrome 实例常驻数百 MB 内存一台机器开一百个并发实例直接吃满内存。Lightpanda 在 m5.large 上实测 933 个真实网页100 页峰值内存 123MB同等任务 headless Chrome 是 2GB。CI 流水线跑 E2E浏览器启动时间和内存占用会直接摊到每个 job 的耗时里。Lightpanda 毫秒级启动100 页总共 5 秒跑完headless Chrome 需要 46 秒。AI 训练数据预处理数据需要 JS 执行后的 DOM纯 HTTP 客户端拿不到但在服务器上起完整桌面浏览器又太重。上面两组数字来自项目 README 的基准AWS EC2 m5.large933 个真实网页crawler benchmark指标100 页LightpandaHeadless Chrome峰值内存123MB2GB执行耗时5s46s30 秒跑通 Lightpanda安装与第一条 fetch 命令推荐安装方式是直接下载 nightly 二进制Linux x86_64 文件名为lightpanda-x86_64-linux在官方项目的 Releases nightly 页面获取macOS aarch64/x86_64 同样提供。也支持 Homebrew、AUR 与 Docker 镜像这里不展开。下载后chmod ax ./lightpanda ./lightpanda version然后抓取一个页面输出就是 JS 执行后的 DOM./lightpanda fetch --dump html https://example.cominfo(browser): GET https://example.com/ 200 !DOCTYPE html html head titleExample Domain/title ...--dump markdown可以直接把页面转成 Markdown--wait-until、--wait-selector、--wait-script用来控制 SPA 渲染完成后再抓取。↑ 对 CDP 服务调截图命令得到的就是这张图没有渲染引擎就没有像素。核心能力演示fetch、Puppeteer 连接与 Agent 模式一条命令抓取渲染后的 DOM上面演示过fetch这里补充两个值得记住的参数--obey-robots遵守 robots.txt合规抓取场景--dump markdown直接产出结构化文本。什么时候你会用到数据管线里只需要文本或字段不想为此引入 Node.js 环境。接上现有的 Puppeteer 脚本先起 CDP 服务——可以理解为一个走 WebSocket 的远程浏览器控制台./lightpanda serve --host 127.0.0.1 --port 9222把现有 Puppeteer 脚本的端点换到这个地址即可import puppeteer from puppeteer-core; const browser await puppeteer.connect({ browserWSEndpoint: ws://127.0.0.1:9222, }); const page await browser.newPage(); await page.goto(https://example.com, { waitUntil: networkidle0 }); const links await page.evaluate(() Array.from(document.querySelectorAll(a)).map(a a.href)); console.log(links); await page.close(); await browser.disconnect();什么时候你会用到你已有一批自动化脚本只希望把底层浏览器换掉以省内存和机器CDP 兼容意味着业务代码几乎不用动。让 AI Agent 操作浏览器./lightpanda agent --task 总结 example.com 头条新闻Agent 与浏览器同进程运行会话结束可用/save导出确定性的 PandaScript再用lightpanda run script.js回放运行时不依赖 LLM。它也能作为 MCP 服务器挂给你自己的 Agent 框架{ mcpServers: { lightpanda: { command: /path/to/lightpanda, args: [mcp] } } }什么时候你会用到你在做 AI Agent需要把浏览当作工具调用多个 Agent 共用一个进程时HTTP transport 模式会按会话隔离各自的页面和 cookie。能力支持状态完整清单见 README 的 Status 一节能力状态源码位置DOM 操作、querySelector✅src/browser/webapi/Fetch / XHR✅src/browser/webapi/net/CDP 服务Puppeteer/Playwright 接入✅src/cdp/Shadow DOM⚠️ 部分src/browser/webapi/ShadowRoot.zigCORS / 像素截图❌README.md底层怎么做的无渲染引擎架构与 v8/Zig 分工代码用 Zig 编写目录结构不绕src/ ├── browser/ # DOM、Web API、frame 与事件管理 │ ├── js/ # v8 引擎集成层 │ └── webapi/ # DOM/Event/Net 等 API 实现 ├── cdp/ # CDP 协议服务端 ├── network/ # Libcurl 网络栈与缓存 └── main.zig # 入口命令行子命令分发没有渲染引擎页面生命周期止于 DOM 树。Chromium 最大的内存开销在图形渲染与合成管线无头场景根本用不到。Lightpanda 从一开始就不做这层代价是截图命令返回占位图前面那张图收益是 100 页峰值内存做到 headless Chrome 的约 1/16。核心逻辑见 src/browser/。v8 跑 JSZig 写胶水层。现代网页内容大多由 JS 动态生成JavaScript 执行去不掉。Lightpanda 直接链接 V8 引擎src/browser/js/Zig 侧围绕 v8 的 handle 体系实现 DOM、Event 等 Web API 接口浏览器逻辑全是原生代码没有额外的运行时层。网络栈复用 Libcurl不重复造轮子。HTTP 请求走 Libcurlsrc/network/内置 robots.txt 门禁、广告过滤和 SQLite 磁盘缓存这三样恰好是自动化场景的刚需。适合谁 / 不适合谁Beta 阶段的边界⚠️ 项目明确处于 Beta稳定性与 Web API 覆盖在持续补齐仍可能遇到报错或崩溃。适合高并发网页抓取与数据采集且对机器成本敏感123MB 峰值 / 100 页。适合AI Agent 需要一个轻量浏览工具CDP 与 MCP 两种接口都已就绪。适合已有 Puppeteer/Playwright 脚本想换底层浏览器省内存。不适合需要像素级截图、布局或视觉回归测试——它完全没有渲染引擎。不适合目标站点重度依赖 CORS 跨域请求或依赖 Canvas/WebGL 输出。不适合核心业务上线且不能容忍偶发崩溃——Beta 阶段你会碰到 API 缺口出问题需要自己兜底。生产部署清单环境、配置与监控指标基础镜像选 glibc 发行版Debian/Ubuntu官方 Linux 二进制链接 glibcmuslAlpine跑不起来。设置LIGHTPANDA_DISABLE_TELEMETRYtrue关闭默认开启的使用遥测。合规抓取场景加--obey-robots遵守 robots.txt。压测后设监控阈值100 页批次峰值内存 200MB实测 123MB单页加载 50ms实测 100 页 5s。排查期用--log-level debug --log-format pretty输出详细日志生产设置LIGHTPANDA_DISABLE_CORE_DUMP避免崩溃 core 文件占满磁盘。自定义构建三步走git clone https://gitcode.com/GitHub_Trending/browser32/browser cd browser make build # 需要 Zig 0.15.2 与 Rust依赖清单见 README路线图与参与Beta 阶段的重心当前处于 BetaCORS 跨域机制是 README Status 表里第一优先的未实现项Web API 覆盖靠 WPTWeb Platform Tests套件持续度量并补齐结果每日发布。近期重心在稳定性与 API 缺口修补而非新特性。如果你在真实站点上遇到崩溃或不支持的 API直接到项目 issue 区提交附上目标 URL 与复现命令提代码贡献需要签署 CLA流程见 CONTRIBUTING.md。想让一百个抓取实例塞进一台机器先去跑一遍那条 fetch 命令。【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考