
html2canvas
JavaScript库,可将网页元素或整个页面渲染为Canvas截图。
Puppeteer 是 Google Chrome 团队维护的 Node.js 库,通过 DevTools 协议直接控制 Chromium 内核浏览器。它并非测试框架的替代品,而是一套底层自动化能力接口,解决的核心问题是:用代码驱动真实浏览器完成加载、交互、抓取与生成任务。
| 场景 | 典型用途 |
|---|---|
| 网页抓取 | 渲染 JavaScript 后的动态内容、单页应用数据提取 |
| 自动化测试 | 表单提交、点击流、页面跳转的行为验证 |
| 生成内容 | 网页截图、PDF 导出、预渲染静态 HTML |
| 性能分析 | 捕获时间线 trace、计算页面加载指标 |
| 前端监控 | 拦截网络请求、模拟慢网速与设备环境 |
waitForSelector、waitForNavigation 等条件等待,减少竞态问题Puppeteer 不是万能的。它依赖真实浏览器内核,启动开销明显高于纯 HTTP 请求库(如 axios、got)。对于不依赖 JavaScript 的静态页面抓取,使用轻量级方案更合理。此外,目标网站的反爬策略(如 TLS 指纹检测、行为验证)可能使自动化操作失效,这属于对抗范畴,Puppeteer 本身不提供规避方案。
选择 Puppeteer 前,确认以下条件成立:
若仅需发送 HTTP 请求并解析 HTML,直接使用 fetch 配合解析器更为高效。Puppeteer 的价值在于“真实浏览器环境”,而非请求速度。







