
Lightpanda 无头浏览器从 0 到 1 的 5 个实战场景【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browserLightpanda 是一个用 Zig 从零写出来的无头浏览器不是 Chromium 的裁剪也不是 WebKit 的补丁。官方在 AWS EC2 m5.large 上跑 933 个真实网页的基准里100 页峰值内存约 123MBHeadless Chrome 为 2GB总耗时 5sChrome 46s——这两个数字直接决定了它适合什么、不适合什么。对开发者来说Lightpanda 主要解决三类问题批量抓页面、给自动化框架接入 CDP、给 AI Agent 提供浏览器后端。下面按场景给到可跑通的最小操作路径。一、快速上手装好二进制跑通第一个 fetchLightpanda 提供 Linux 和 macOS 的官方二进制x86_64 与 aarch64 都有也支持 Docker。最省事的两种装法# Linux x86_64 直接从 nightly 拉二进制 curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux chmod ax ./lightpanda# 或用 Docker 起一个监听 9222 的 CDP 服务 docker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda/browser:nightly注意Linux 二进制链接的是 glibcAlpine 等 musl 基础镜像会报cannot execute: required file not found。要么用 debian/ubuntu 系镜像要么从源码构建。装完先跑./lightpanda version确认可执行再试最简单的抓取./lightpanda fetch --dump html --log-level info https://example.comfetch是 Lightpanda 最轻量的入口不启 CDP直接加载页面、执行 JS、然后把 DOM 按你指定的格式吐出来。--dump支持html、markdown、png、pdf四种输出前两种是纯文本后两种做纯文本级渲染没有图形渲染引擎。二、场景 A批量抓页面 / 离线快照如果你有几百个 URL 要处理fetch就是主力。几个实用参数参数作用--dump html\|markdown\|png\|pdf选择输出格式--wait-until load\|domcontentloaded\|networkidle0等待到什么状态再 dump--wait-ms 毫秒简单定时等待应对异步加载--wait-selector CSS等某个元素出现再 dump--obey-robots遵守目标站点的 robots.txt一条典型命令./lightpanda fetch --obey-robots --dump markdown --wait-until networkidle0 \ --wait-selector main https://example.com/blog/--obey-robots是爬虫场景几乎必开的开关避免你的自动化被目标站点拒绝。robots.txt 解析实现位于 src/network/Robots.zig 与 src/network/RobotsGate.zig。三、场景 B给 Puppeteer / Playwright 接入 CDP大多数自动化框架都走 Chrome DevTools Protocol。Lightpanda 自带 CDP 服务器你只需要把browserWSEndpoint指过去剩下的 API 和连 Chrome 时几乎一样./lightpanda serve --host 127.0.0.1 --port 9222 --log-level info// Node.js 端用 puppeteer-core 连上去 import puppeteer from puppeteer-core; const browser await puppeteer.connect({ browserWSEndpoint: ws://127.0.0.1:9222, }); const page await (await browser.createBrowserContext()).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 服务端的核心实现在 src/cdp/CDP.zig 和 src/cdp/Connection.zig支持 domain 包括page、dom、network、runtime、fetch、input等详见 src/cdp/domains/。四、场景 C把浏览器交给 AI AgentLightpanda 有一个原生agent子命令让你用自然语言驱动浏览器——导航、点击、填表、结构化取数据都支持背后是 Anthropic / OpenAI / Gemini / Mistral / Ollama / llama.cpp 等接入# 自动从环境变量识别 API Key ./lightpanda agent --task 帮我看看 news.ycombinator.com 今天的第一条是什么 # 用本地 Ollama不依赖云端 ./lightpanda agent --provider ollama --task 抓取 example.com 的 nav 菜单 # 不带 LLM直接进 REPL 手动操作 ./lightpanda agent --no-llmagent有个关键特性会话结束时会导出一份PandaScript本质是普通 JS 几个内置原语。你在会话里跑/save就能拿到一个脚本文件之后直接./lightpanda run session.js复现不再消耗 token。这让LLM 探索 脚本上线成为主流用法。agent模块的核心代码在 src/agent/Agent.zig模型适配在 src/agent/auth/ 下。五、场景 D把浏览器当 MCP 工具暴露如果你的 Agent 框架Claude Desktop、Cursor 等支持 MCP直接把 Lightpanda 挂上就行{ mcpServers: { lightpanda: { command: /path/to/lightpanda, args: [mcp] } } }lightpanda mcp走 stdio 的 MCP JSON-RPC 2.0一个进程对应一个浏览会话。如果要多 Agent 共享一台机器用 HTTP 传输更合适lightpanda mcp --port 9223此时客户端 POST 到http://host:9223/mcp通过Mcp-Session-Id头区分会话——不带的请求会拿到一个新 session带的会复用一个。多 Agent 隔离/共享页签与 Cookie 的逻辑在 src/mcp/HttpServer.zig 里。六、遥测、构建与测试遥测默认开启收集使用统计。不想上报时加一个环境变量即可LIGHTPANDA_DISABLE_TELEMETRYtrue ./lightpanda serve实现见 src/telemetry/lightpanda.zig。从源码构建Lightpanda 基于 Zig 0.15.2依赖 V8 与 html5evermake build会用预编译 V8make download-v8避免 10 分钟级的 V8 源码编译。本地跑测试make test Fserver # 按子串过滤 make test # 全量Web Platform Tests 走make wpt单个用例可指定文件如Node-childNodes.html。边界与现状Lightpanda 目前处于 Beta。README 的状态清单里 CORS 尚未完成其余 HTTP 加载、DOM、AjaxXHR / Fetch、点击、表单、Cookie、自定义 Header、代理、网络拦截、--obey-robots均已实现。JS 引擎是 V8DOM 树与 DOM API 覆盖了绝大多数日常选择器和常用事件——但对于重度依赖图形渲染、复杂 Canvas、WebGL 的页面它的能力边界会比 Chrome 窄一些。如果你要跑的站点踩到不兼容 API建议先降级到fetch --dump html验证再去 CDP 层复现。更多参数与示例见./lightpanda help和./lightpanda help fetch的子命令帮助或在仓库内 src/browser/tests/ 里按 HTML 文件名浏览各模块的验收用例。【免费下载链接】browserLightpanda: the headless browser designed for AI and automation项目地址: https://gitcode.com/GitHub_Trending/browser32/browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考