Home
Login

高效能 Node.js/TypeScript 網路爬蟲,專為 LLM 優化,支援多搜索引擎抓取和結構化資料提取

MITTypeScript 500any4aiAnyCrawl Last Updated: 2025-07-03

AnyCrawl 項目詳細介紹

🚀 項目概述

AnyCrawl 是一個高性能的網路爬蟲和資料抓取應用程式,基於 Node.js/TypeScript 建構。該項目專為大語言模型(LLM)優化,能夠將網站內容轉換為 LLM 可用的資料格式,並從 Google、Bing、百度等搜尋引擎中提取結構化的搜尋結果頁面(SERP)資料。

🎯 核心特性

AnyCrawl 在多個領域表現出色:

  • SERP 爬取:支援多個搜尋引擎,具備批量處理能力
  • 網頁爬取:高效的單頁面內容提取
  • 站點爬取:智慧遍歷的全站點爬取功能
  • 高性能架構:多執行緒和多進程架構設計
  • 批量處理:高效處理批量爬取任務

🏗️ 技術架構

現代化設計

  • 基於 Node.js/TypeScript 建構
  • 針對大語言模型(LLM)優化
  • 支援原生多執行緒批量處理
  • 現代化架構設計

支援的爬取引擎

AnyCrawl 支援多種爬取引擎:

  1. Cheerio:靜態 HTML 解析,速度最快
  2. Playwright:JavaScript 渲染,使用現代引擎
  3. Puppeteer:JavaScript 渲染,使用 Chrome 引擎

🚀 快速開始

Docker 部署

使用 Docker Compose 快速啟動:

docker compose up --build

環境變數配置

變數名 描述 預設值 示例
NODE_ENV 執行時環境 production production, development
ANYCRAWL_API_PORT API 服務埠 8080 8080
ANYCRAWL_HEADLESS 瀏覽器引擎是否使用無頭模式 true true, false
ANYCRAWL_PROXY_URL 代理伺服器 URL(支援 HTTP 和 SOCKS) (無) http://proxy:8080
ANYCRAWL_IGNORE_SSL_ERROR 忽略 SSL 憑證錯誤 true true, false
ANYCRAWL_KEEP_ALIVE 請求之間保持連接 true true, false
ANYCRAWL_AVAILABLE_ENGINES 可用的爬取引擎(逗號分隔) cheerio,playwright,puppeteer playwright,puppeteer
ANYCRAWL_API_DB_TYPE 資料庫類型 sqlite sqlite, postgresql
ANYCRAWL_API_DB_CONNECTION 資料庫連接字串/路徑 /usr/src/app/db/database.db /path/to/db.sqlite
ANYCRAWL_REDIS_URL Redis 連接 URL redis://redis:6379 redis://localhost:6379
ANYCRAWL_API_AUTH_ENABLED 啟用 API 認證 false true, false
ANYCRAWL_API_CREDITS_ENABLED 啟用積分系統 false true, false

📝 API 使用指南

網頁抓取 API

基本用法

curl -X POST http://localhost:8080/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
-d '{
  "url": "https://example.com",
  "engine": "cheerio"
}'

參數說明

參數 類型 描述 預設值
url string (必需) 要抓取的 URL。必須是以 http:// 或 https:// 開頭的有效 URL -
engine string 使用的抓取引擎。選項:cheerio(靜態 HTML 解析,最快)、playwright(JavaScript 渲染,現代引擎)、puppeteer(JavaScript 渲染,Chrome 引擎) cheerio
proxy string 請求的代理 URL。支援 HTTP 和 SOCKS 代理。格式:http://[username]:[password]@proxy:port (無)

搜尋引擎抓取 API

基本用法

curl -X POST http://localhost:8080/v1/search \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
-d '{
  "query": "AnyCrawl",
  "limit": 10,
  "engine": "google",
  "lang": "all"
}'

參數說明

參數 類型 描述 預設值
query string (必需) 要執行的搜尋查詢 -
engine string 使用的搜尋引擎。選項:google google
pages integer 要檢索的搜尋結果頁數 1
lang string 搜尋結果的語言代碼(例如:'en'、'zh'、'all') en-US

🧪 測試和開發

Playground

你可以使用 Playground 來測試 API 並為你喜歡的程式語言生成程式碼示例。

💡 注意:如果你是自託管 AnyCrawl,確保將 https://api.anycrawl.dev 替換為你自己的伺服器 URL。

❓ 常見問題

Q: 可以使用代理嗎?

A: 是的,AnyCrawl 支援 HTTP 和 SOCKS 代理。通過 ANYCRAWL_PROXY_URL 環境變數進行配置。

Q: 如何處理 JavaScript 渲染的內容?

A: AnyCrawl 支援 Puppeteer 和 Playwright 來處理 JavaScript 渲染需求。

總結

AnyCrawl 代表了現代網路爬蟲技術的前沿,特別是在 AI 和機器學習應用場景中。其高性能、易用性和豐富的功能使其成為開發者和企業處理大規模資料抓取任務的理想選擇。

Star History Chart