25k Star 的 Crawlee 依然是 Node.js 爬虫的首选方案,v3.18.0 带来了什么
过去一周,GitHub 上一个 TypeScript 爬虫框架悄悄更新到了 v3.18.0——你没看错,2026年8月4日刚发版。而它的 Star 数在同期悄然突破了 25,338,过去一年多时间一直维持在爬虫类目的头部位置。
这个框架叫 Crawlee,来自 Apify——一家专门做网页数据采集平台的公司。
什么是 Crawlee?
Crawlee 是一个 Node.js 上的网页爬取与浏览器自动化库,官方定位是”帮你构建可靠爬虫”。它脱胎于 Apify 多年做爬虫基础设施的经验,核心特点是统一的抽象层:不管你是抓静态页面还是渲染型 SPA,用同一套写法和数据模型应对。
# 快速创建一个新爬虫项目
npx crawlee create my-crawler
cd my-crawler
node main.js
它目前支持四种底层引擎:
- CheerioCrawler:基于 HTTP 请求 + Cheerio 解析,速度快,适合不需要 JS 渲染的静态站
- JSDOMCrawler:无头渲染但不启动完整浏览器,适合 Vue/React 生成的页面
- PlaywrightCrawler:Puppeteer 的替代方案,支持无头/有头模式,社区更活跃
- PuppeteerCrawler:老牌方案,部分场景仍有不可替代性
此外,它还提供代理轮换、自动重试、请求队列、URL 去重等开箱即用的工程能力,这些在原生 Puppeteer/Playwright 里都需要自己造轮子。
它在 2026 年解决了一个真实问题
知乎上有个帖子讨论”网络爬虫用什么编程语言好”,有个回答很实在:如果你要临时解决一个数据采集问题,Crawlee/PulsarR 这类开箱即用的方案是首选,”解决了阻挡在你和网页数据之间的绝大多数拦路虎”。但如果你是专业爬虫工程师,要做每日百万级的竞品监测,那确实需要更重的方案。
这个判断到今天依然准确——Crawlee 瞄准的正是中间这个地带:开发者需要快速可靠地采集网页数据,不想花时间处理反爬、代理、浏览器崩溃。
今年2月,Crawlee 正式将 adaptive crawling(自适应爬取)列为产品路线图项,简单说就是让爬虫自己判断目标页面是静态还是动态的,然后自动选择最优的抓取策略,不再需要人工判断用 Cheerio 还是 Playwright。
更值得注意的是 v3.16.0 里引入的 @crawlee/stagehand 包:这是 AI 驱动浏览器自动化的实验模块,可以理解自然语言指令,让爬虫”看你让它做什么”而不是”看你让它抓哪个元素”。这是和 LLM/RAG 工作流深度整合的方向。
真实数据
| 指标 | 数值 |
|---|---|
| GitHub Stars | 25,338 |
| Forks | 1,612 |
| Open Issues | 148 |
| 最近版本 | v3.18.0(2026-08-04) |
| License | Apache-2.0 |
| 官网 | https://crawlee.dev |
v3.18.0 修复了 enqueueLinksByClickingElements 的 clickOptions 兼容问题,v3.17.0修了 sitemap 发现可能无限挂起的问题——都是生产环境里真实会遇到的坑。
适合谁 / 不适合谁
适合:
- 需要快速构建可靠爬虫的 Node.js/TypeScript 开发者
- 正在做 AI/RAG 数据 pipeline,需要抓取大量网页文本的项目
- 有反爬应对需求,不想从零写代理池和请求重试逻辑的团队
- 已在用 Playwright/Puppeteer,想减少维护负担的开发者
不适合:
- 追求极限性能、已有成熟 Scrapy 体系的大规模爬虫团队(Python 生态更适合)
- 需要采集深网/Tor 暗网等特殊网络(目前没有内置支持,GitHub 上有用户提过 Feature Request)
- 只是偶尔抓一个页面,直接 requests + BeautifulSoup 更快
怎么快速上手
# 安装
npm install crawlee
# 写一个最简单的爬虫
import { CheerioCrawler } from 'crawlee';
const crawler = new CheerioCrawler({
async requestHandler({ page, request }) {
const title = await page.title();
console.log(`抓取成功: ${request.url} → ${title}`);
},
});
await crawler.run(['https://news.ycombinator.com/']);
官方文档在 https://crawlee.dev/docs,示例覆盖了代理设置、登录态处理、文件下载等常见场景,比很多同类文档写得更细。
竞品简评
和同类方案对比:Crawlee 相比原生 Playwright/Puppeteer,提供了完整的工程化封装,但相比 Scrapy 在 Python 生态的积累,TypeScript 这侧的学习曲线和社区深度还有差距。知乎上有人做过对比,”Scrapy 稳定性和用户群更成熟,Crawlee 更灵活,和 JS 生态集成更自然”——这个判断到今天依然成立。
如果你已经在 Node.js 生态里,Crawlee 是一个”少踩坑、快点上线”的选择。如果你需要爬取的是中文网站的复杂登录态或验证码,可能还需要结合打码平台和浏览器指纹库一起用——这部分 Crawlee 本身不解决,但可以通过自定义 playwright 代理中间件接入。
链接:
- GitHub:https://github.com/apify/crawlee
- 官网:https://crawlee.dev
- 最新 release(v3.18.0):https://github.com/apify/crawlee/releases/tag/v3.18.0
- CSDN 教程:《JavaScript爬虫框架Crawlee终极指南》:https://blog.csdn.net/gitblog_01111/article/details/151456172
评论区
登录后可评论。