Home
Login

强大的Node.js网页抓取和浏览器自动化库,支持JavaScript和TypeScript,可为AI、LLM、RAG等提取数据

Apache-2.0TypeScript 18.0kapify Last Updated: 2025-06-19

Crawlee - 现代化网页抓取和浏览器自动化框架

项目概述

Crawlee是由Apify公司开发的一个强大的Node.js网页抓取和浏览器自动化库,专为构建可靠的网页爬虫而设计。该项目支持JavaScript和TypeScript,能够为AI、大语言模型(LLM)、检索增强生成(RAG)等应用提供高质量的数据提取服务。

GitHub地址: https://github.com/apify/crawlee

核心功能特性

🚀 统一的抓取接口

  • 多引擎支持: 统一接口支持HTTP请求和无头浏览器抓取
  • 灵活选择: 可根据需求选择合适的抓取方式

🔄 智能队列管理

  • 持久化队列: 支持广度优先和深度优先的URL爬取队列
  • 自动扩展: 根据系统资源自动调整抓取规模

💾 灵活的存储系统

  • 多格式支持: 支持表格数据和文件的可插拔存储
  • 本地/云端: 默认存储到本地./storage目录,支持云端存储

🔒 企业级反检测

  • 代理轮换: 集成代理轮换和会话管理
  • 人性化模拟: 默认配置下能够模拟人类行为,绕过现代机器人检测
  • 指纹伪造: 自动生成类似真实浏览器的TLS指纹和请求头

🛠 开发者友好

  • TypeScript原生支持: 完整的类型定义和泛型支持
  • CLI工具: 提供脚手架快速创建项目
  • 生命周期钩子: 可自定义的生命周期事件处理
  • Docker就绪: 内置Dockerfile,便于部署

支持的抓取方式

HTTP抓取

  • 高性能: 零配置HTTP2支持,包括代理
  • 智能解析: 集成Cheerio和JSDOM快速HTML解析器
  • API友好: 同样支持JSON API的抓取

浏览器自动化

  • 多浏览器: 支持Chrome、Firefox、Webkit等多种浏览器
  • JavaScript渲染: 处理动态内容和单页应用
  • 截图功能: 支持页面截图
  • 无头/有头模式: 灵活的运行模式选择
  • 统一接口: Playwright和Puppeteer使用相同的API接口

快速开始

使用CLI创建项目

npx crawlee create my-crawler
cd my-crawler
npm start

基础示例代码

import { PlaywrightCrawler, Dataset } from 'crawlee';

const crawler = new PlaywrightCrawler({
    async requestHandler({ request, page, enqueueLinks, log }) {
        const title = await page.title();
        log.info(`Title of ${request.loadedUrl} is '${title}'`);
        await Dataset.pushData({ title, url: request.loadedUrl });
        await enqueueLinks();
    },
    // headless: false,
});


await crawler.run(['https://crawlee.dev']);

安装依赖

npm install crawlee playwright

技术架构

核心模块

  • @crawlee/core: 核心功能模块
  • @crawlee/types: TypeScript类型定义
  • @crawlee/utils: 实用工具函数

支持的库和工具

  • Playwright: 现代浏览器自动化
  • Puppeteer: Chrome/Chromium自动化
  • Cheerio: 快速HTML解析
  • JSDOM: DOM操作和解析

部署和集成

本地开发

  • 默认数据存储在./storage目录
  • 支持通过配置文件自定义存储位置
  • 完整的配置指南和文档支持

云端部署

  • Apify平台: 由于Crawlee由Apify开发,可以轻松部署到Apify云平台
  • Docker支持: 内置Docker配置,支持容器化部署
  • 跨平台: 可在任何支持Node.js的环境中运行

版本管理

  • 稳定版本: 通过npm安装稳定发布版本
  • Beta版本: 支持安装beta版本测试新功能
npm install crawlee@3.12.3-beta.13

适用场景

数据科学和AI

  • 机器学习数据集: 为AI模型收集训练数据
  • RAG系统: 为检索增强生成系统提供知识库
  • LLM训练: 大语言模型的预训练数据收集

商业应用

  • 竞品分析: 监控竞争对手的产品和价格信息
  • 市场研究: 收集行业趋势和市场数据
  • 内容聚合: 新闻、文章等内容的自动化收集

技术监控

  • 网站监控: 定期检查网站变化
  • 价格追踪: 电商产品价格监控
  • 数据备份: 重要网页内容的定期备份

总结

Crawlee是一个功能全面、设计现代的网页抓取框架,特别适合需要高可靠性和反检测能力的企业级应用。其统一的API设计、强大的反检测功能以及完善的生态系统,使其成为现代数据收集项目的理想选择。无论是为AI项目收集数据,还是进行商业智能分析,Crawlee都能提供稳定可靠的解决方案。