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都能提供穩定可靠的解決方案。