2026.10.19

Crawlee:在 Node.js 中构建网页抓取流程

Crawlee 为 Node.js 项目提供 HTTP 与浏览器抓取的统一接口、队列和存储能力。采用前应核对 Node.js 版本、浏览器依赖、默认本地存储及目标站点规则。

项目用途

Crawlee 是用于 Node.js 的网页抓取与浏览器自动化库,面向 JavaScript 和 TypeScript 项目。其定位不是单一的请求工具,而是把 URL 调度、页面处理和结果保存组织到同一套爬虫流程中。项目资料列出链接抓取、数据提取,以及下载 HTML、PDF、JPG、PNG 等网站文件的用途;也将 AI、LLM、RAG 或 GPT 的数据提取列为场景。后者不代表它会自动完成数据清洗、标注或知识库构建。

适合哪些人

它适合已有 Node.js 技术栈、需要把采集脚本组织为可持续运行任务的开发者。对于静态页面,可使用 HTTP 抓取并配合 Cheerio、JSDOM 或原始 HTTP;对于依赖 JavaScript 渲染的页面,可通过同一接口使用 Playwright 或 Puppeteer。CLI、可配置路由、钩子、重试和持久化请求队列,也使其适用于需要持续调度 URL 的采集工作。

已知功能

README 列出 HTTP 与无头浏览器抓取的统一接口,以及支持广度优先和深度优先的持久化 URL 队列。数据层面,Crawlee 可使用表格数据和文件的可插拔存储;浏览器抓取支持 JavaScript 渲染、截图,以及无头和有界面两种模式。项目还列出代理轮换、会话管理、错误处理、重试和随可用系统资源自动扩展等能力。

默认情况下,数据写入当前工作目录的 ./storage,目录可通过配置修改。README 同时列出可部署的 Dockerfiles。仓库采用 Apache License 2.0;使用者仍应根据许可证文本和自身分发、依赖管理或合规情境作出判断。

采用前的限制与部署考虑

运行时是首要前提:README 要求 Node.js 22.13 或更高版本。若选择 PlaywrightCrawler,Playwright 不随 Crawlee 打包,必须作为额外依赖处理。浏览器型抓取还意味着需要在部署方案中考虑浏览器安装和进程管理;来源未提供最低 CPU、内存、磁盘或并发规格,不能据此估算机器容量。

默认的本地 ./storage 适合快速开始,但生产部署应明确其持久化位置、备份与容量策略。队列、结果文件和重试机制也需要与日志及故障恢复方案一并设计。目标站点的页面结构、访问节奏、认证方式和网络条件会影响采集结果;README 提到代理轮换、会话管理和浏览器指纹相关能力,但这不是对任何站点访问结果的保证。

官方 v3.18.2 发布说明记录了浏览器池中页面关闭未完成时的处理修复,以及核心任务超时上下文处理修复。计划升级时,可固定所用版本,并针对浏览器依赖、结果格式及既有 Apify SDK 集成进行验证。

资料来源

资料核对日期:2026-10-19