SuperAPI AI 工具集

puppeteer

编程与开发

查看项目

更新于 10-15 21:49

技能介绍

用途:Puppeteer 是 Node 库,通过 Chrome DevTools Protocol(CDP)以高层 API 控制 Chrome 或 Chromium,适用于无头浏览器自动化与抓取、服务端 PDF 与截图生成、单页应用预渲染,以及直接访问 CDP 事件、性能分析与堆快照。

主要能力:启动并管理浏览器进程与页面;设置视口、导航并等待加载;用 page.pdf 将 HTML 渲染为 PDF,支持 A4、printBackground 与页边距;用 page.evaluate 在浏览器上下文执行 JavaScript 并序列化结果回 Node;可拦截请求以屏蔽图片、字体和跟踪脚本加速抓取。

使用方式:安装后以 import puppeteer from "puppeteer" 引入,puppeteer.launch() 启动浏览器,browser.newPage() 新建页面,page.goto 导航,page.pdf 或 page.evaluate 完成操作,最后 browser.close() 关闭。生成 PDF 前可先 page.emulateMediaType("print") 以套用打印样式。

适用场景:网页抓取与爬取、HTML 模板转 PDF 与高分辨率截图、SPA 预渲染供 SEO 索引、CDP 性能剖析。

限制与注意:建议使用 headless: "new";在 finally 中关闭浏览器避免僵尸进程;抓取时拦截不必要资源;SPA 截图用 waitUntil: "networkidle0";不要把原始 DOM 元素传回 Node,应序列化为 JSON 或原始值;不要为每个请求新建浏览器实例,应复用实例并创建/关闭页面;不要以 root 无沙箱防护运行 Chrome。常见问题包括 Linux 缺少 libnss3、libasound2 等依赖导致启动失败,导航后执行上下文销毁需重新查询定位器,以及 networkidle0 超时可改用 networkidle2 或自定义 timeout。具体安装命令与更多细节暂未提供。