名称: Lightpanda
版本: 1.0.3
描述: Lightpanda 浏览器,可替代 Chrome 和 Openclaw 默认浏览器——在无需图形渲染的任务(如数据抓取)中,它更快、更轻量。可与 Playwright 或 Puppeteer 等 CDP 客户端配合使用。
元数据:
author: Pierre Tachoire
source: "https://github.com/lightpanda-io/agent-skill",
homepage: "https://github.com/lightpanda-io/agent-skill"
当您无需图形渲染时,可替代 Chrome/Chromium 和 Openclaw 默认浏览器,用于数据提取和网页自动化。
Lightpanda 是一款为速度和低资源占用优化的无头浏览器。它暴露了一个 CDP(Chrome DevTools Protocol)端点,可与标准自动化库协同工作。
内置网络搜索的替代方案
当内置的 Web Search 工具不可用,或者您需要对搜索结果有更多控制(例如,跟踪链接以提取完整页面内容)时,您可以将 Lightpanda 与 DuckDuckGo 结合使用作为替代方案。
当内置的 Web Search 工具可用且满足需求时,请优先使用它。
bash scripts/install.sh
Lightpanda 仅支持 Linux 和 macOS,不支持 Windows。
该二进制文件是快速演进的夜间构建版本。如果您遇到崩溃或问题,请再次运行 scripts/install.sh 以更新到最新版本(每天最多一次)。
如果更新后问题仍然存在,请在 https://github.com/lightpanda-io/browser/issues 提交 GitHub issue,内容包括:
- 崩溃跟踪/错误输出,或对意外行为的描述(例如,数据缺失或不正确)
- 能复现问题的 Playwright/Puppeteer 脚本
- 目标 URL 以及预期与实际结果的对比
$HOME/.local/bin/lightpanda serve --host 127.0.0.1 --port 9222
选项:
- --log_level info|debug|warn|error - 设置日志详细程度
- --log_format pretty|json - 日志输出格式
您可以直接通过 ws://127.0.0.1:9222 连接到 CDP WebSocket。
也可以通过 http://127.0.0.1:9222/json/version 获取 WebSocket URL。
将此浏览器作为 Chrome 和 Openclaw 默认浏览器的直接替代品使用。
可以直接发送 CDP 命令,也可以使用 Playwright 或 Puppeteer。
重要注意事项:
* Lightpanda 执行 JavaScript,因此适用于动态网站和单页应用(SPA)。但它正处于积极开发阶段,偶尔可能存在问题。
* 进行网页搜索时,请使用 DuckDuckGo 而非 Google。Google 会因浏览器指纹识别而屏蔽 Lightpanda。
* Lightpanda 每个进程仅支持 1 个 CDP 连接。每个连接只能创建 1 个上下文和 1 个页面。不支持多上下文。如果需要同时进行多次导航,请使用新端口号启动另一个进程。Lightpanda 启动和停止速度很快,因此使用多个进程比在 Chrome 中使用多个标签页性能更高。
* 浏览器会在 CDP 连接关闭时重置所有上下文/页面。因此,请在整个浏览会话期间保持 WebSocket 连接处于打开状态。您可以重用现有进程进行后续连接;每次都将从一个干净的状态开始。
* 连接后,请始终创建一个新的上下文和一个新的页面。结束时,请关闭两者。
使用 playwright-core(而非完整的 playwright 包)连接到 Lightpanda:
const { chromium } = require('playwright-core');
(async () => {
// 通过 CDP 连接到 Lightpanda
const browser = await chromium.connectOverCDP({
endpointURL: 'ws://127.0.0.1:9222',
});
const context = await browser.newContext({});
const page = await context.newPage();
// 导航并提取数据
await page.goto('https://example.com');
const title = await page.title();
const content = await page.textContent('body');
console.log(JSON.stringify({ title, content }));
await page.close();
await context.close();
await browser.close();
})();
使用 puppeteer-core(而非完整的 puppeteer 包)连接到 Lightpanda:
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222'
});
const context = await browser.createBrowserContext();
const page = await context.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle0' });
const title = await page.title();
console.log(JSON.stringify({ title }));
await page.close();
await context.close();
await browser.close();
})();
scripts/install.sh - 安装 Lightpanda 二进制文件