
下面这套是 Crawlee 的网页抓取与浏览器自动化库源码。
它用 TypeScript 写成,把 HTTP 请求、无头浏览器渲染、代理轮换、会话管理、请求队列和自动扩缩容串成一套工具,既能抓静态页面也能驱动 Chrome 渲染,适合拿来研究 JS 爬虫怎么搭。
源码简介
这份源码是 Apify 出品的 Crawlee,一个用 TypeScript 写的 Node.js 网页抓取与浏览器自动化库。
它把 HTTP 请求、无头浏览器渲染、代理轮换、会话管理、请求队列和自动扩缩容串在一起,既能抓静态页面也能驱动 Chrome 渲染。
项目适合想研究 JavaScript 爬虫架构的开发者,也方便在本地跑通后做二次开发、定制抓取与导出逻辑。
源码免费提供学习与测试用途,请遵守目标站 robots 协议与采集合规要求。
适用场景
- 学习 Node.js、TypeScript 爬虫的调度、浏览器池与请求队列设计
- 二次开发定制抓取规则、解析器与数据存储方式
- 本地搭建爬虫项目,研究代理轮换、会话管理与自动扩缩容实现
技术栈与运行环境
- 前端:无(Node.js 库与 CLI 工具,不含 Web 界面)
- 后端:Node.js 16.0.0+,TypeScript 编写,基于 Puppeteer、Playwright、Cheerio、JSDOM 等运行时
- 数据库:无(抓取结果可写入 Dataset 数据集、KeyValueStore 键值存储或导出为文件)
- 运行环境:跨平台 Windows、macOS、Linux,需 Node 16+ 与 npm 安装依赖,浏览器模式需本地有 Chromium
- 其他依赖:Puppeteer、Playwright、Cheerio、JSDOM、Linkedom、impit(HTTP 客户端)、proxy-chain 等(按需引入)
功能亮点
- 多种爬虫实现:BasicCrawler 到 HttpCrawler、CheerioCrawler、JSDOMCrawler、LinkedomCrawler、PlaywrightCrawler、PuppeteerCrawler、StagehandCrawler,统一接口切换(packages/*/src/internals/*.ts)
- 请求路由与链接入队:Router 按标签分发处理函数,enqueueLinks 自动发现并跟进页面链接(core/src/router.ts、enqueue_links/)
- 代理轮换与会话管理:ProxyConfiguration 接代理,SessionPool 管理会话状态与封锁恢复(core/src/proxy_configuration.ts、session_pool/)
- 自动扩缩容与队列存储:AutoscaledPool 按系统资源调并发,RequestQueue、Dataset、KeyValueStore 提供持久化队列与存储(core/src/autoscaling/、storages/)
- 浏览器池与指纹:BrowserPool 统一管理 Puppeteer、Playwright 实例,内置浏览器指纹与代理服务(browser-pool/src/)
- CLI 与项目模板:crawlee create 生成脚手架、crawlee run 运行、crawlee install 安装浏览器(packages/cli/、templates/)
安装与部署提示
- 准备 Node.js 16 及以上环境,建议用 npm 或 yarn 安装依赖。
- 安装库:npm install crawlee,浏览器模式另装 puppeteer 或 playwright。
- 新建项目:npx crawlee create my-crawler 选择模板,进入后 npx crawlee run 启动。
- 运行爬虫:在代码里 new CheerioCrawler 配置请求与处理函数,调用 run 启动采集并写入 Dataset。
常见问题
运行前需要注意什么?
Crawlee 要求 Node.js 16 及以上,浏览器模式需本地安装 Chromium(可用 crawlee install 或 playwright install 拉取)。
采集前请确认目标站点 robots.txt 与采集合规,避免未授权抓取。
适合二次开发吗?
非常适合。
源码按 crawler、browser-pool、core、cli、templates 等包拆分,接口清晰、TypeScript 类型完善,官方提供 hooks 与路由机制,适合学习 JS 爬虫设计与定制采集逻辑。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
Crawlee 为知名开源爬虫库,正常源码分析中未发现加密、混淆或后门代码。
但请注意:采集行为应遵守目标站点 robots 协议与相关条款,不得用于未授权采集或违规绕过站点防护。
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。
如用于采集,请遵守目标站点 robots.txt 与采集合规要求,不得用于未授权抓取、违规绕过防护或违反平台规则的用途。
GitHub开源地址:https://github.com/apify/crawlee
