轻量无头浏览器

15分钟前更新 2 00
轻量无头浏览器轻量无头浏览器
轻量无头浏览器

技能简介

Lightpanda是一款专为速度和低资源占用优化的无头浏览器,通过CDP(Chrome DevTools Protocol)端点与标准自动化库对接。无需图形渲染,适合数据提取和网页自动化任务。

业务背景

传统浏览器自动化资源消耗高、启动慢,大规模数据采集成本居高不下。Lightpanda以无头模式运行,剔除图形渲染开销,在同等硬件条件下可并行处理更多任务,显著降低服务器成本,同时兼容主流自动化框架,无需重构现有脚本。

落地案例:一家市场情报公司需每日抓取数百个动态网站的价格信息,原Chrome方案内存占用过高导致频繁扩容。切换至Lightpanda后,通过Playwright发送CDP命令执行JavaScript渲染,配合多进程架构并行采集,单台服务器即可承载原有集群的工作量,且完美支持React构建的单页应用数据提取。

能做什么

  • 作为Chrome/Openclaw默认浏览器的直接替代品运行
  • 执行JavaScript,支持动态网站和单页应用(SPA)
  • 通过Playwright或Puppeteer发送CDP命令进行网页操作
  • 配合DuckDuckGo实现替代性网页搜索
  • 多进程并行处理多个导航任务

使用说明

安装步骤:

bash scripts/install.sh

仅支持Linux和macOS,Windows不可用。二进制为每日构建版本,如遇崩溃可重新运行安装脚本更新(每天最多一次)。

启动服务:

$HOME/.local/bin/lightpanda serve --host 127.0.0.1 --port 9222

可选参数:--log_level info|debug|warn|error 设置日志级别;--log_format pretty|json 设置输出格式。

连接方式:

  • 直接连接WebSocket:ws://127.0.0.1:9222
  • 获取WebSocket URL:http://127.0.0.1:9222/json/version

代码示例(playwright-core):

const { chromium } = require('playwright-core');
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');

代码示例(puppeteer-core):

const puppeteer = require('puppeteer-core');
const browser = await puppeteer.connect({
  browserWSEndpoint: 'ws://127.0.0.1:9222'
});
const context = await browser.createBrowserContext();
const page = await context.newPage();

输入与输出

见下方输入与输出表格。

项目内容
输入目标URL;CDP命令或Playwright/Puppeteer脚本;端口号(可选,默认9222);日志级别与格式参数(可选)
输出网页HTML内容;页面标题;文本内容提取结果;CDP响应数据
适用人群需要快速启动的低资源自动化场景;动态网站和SPA数据抓取;多进程并行网页任务;无法使用内置搜索时的替代方案
不包含图形界面渲染;Windows系统支持;多标签页单进程管理;Google搜索直接访问

 

风险提示

  • 处于密集开发阶段,可能出现偶发问题
  • Google因浏览器指纹检测会阻止访问,搜索请改用DuckDuckGo
  • 每进程仅支持1个CDP连接,每个连接仅能创建1个上下文和1个页面
  • CDP连接关闭时所有上下文/页面会被重置,需保持WebSocket连接直至会话结束
  • 连接后务必新建上下文和页面,结束时依次关闭

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/krichprollsch/lightpanda-browser/SKILL.md
来源类型:GitHub仓库

数据统计

相关导航

暂无评论

none
暂无评论...