any4ai/AnyCrawl

AnyCrawl 🚀: A Node.js/TypeScript crawler that turns websites into LLM-ready data and extracts structured SERP results from Google/Bing/Baidu/etc. Native multi-threading for bulk processing.

AnyCrawl – 支援 LLM 的高速、可擴展 Web 與 SERP 爬取

是什麼 – AnyCrawl 是一個開源工具包(Node.js + TypeScript),用於高效率的 Web 爬取、全站抓取與搜尋引擎結果(SERP)取得。它提供多執行緒/多進程工作器、內建快取,以及可選的 LLM 驅動的 JSON 提取功能,是需要即時網頁資料的 AI 代理的即用型後端解決方案。

核心功能

  • SERP 爬取 – 向 Google(未來支援其他引擎)發送查詢,批次取得結構化結果。
  • Web 抓取 – 可選擇三種引擎抓取單一頁面:
    • cheerio(靜態 HTML,最快)
    • playwright(支援現代 JS 渲染的無頭 Chromium)
    • puppeteer(基於 Chrome 的渲染)
  • 網站爬取 – 從根網址開始,透過深度、限制與範圍控制(same-domainsame-hostname 等)遍歷連結。
  • 批次任務 – 一次提交多個 URL,取得任務 ID,輪詢狀態,並取得分頁結果。
  • LLM 提取 – 提供 JSON 模式;AnyCrawl 呼叫 OpenAI 相容的 LLM(如 Atlas Cloud)將原始頁面內容轉換為結構化 JSON。
  • 可擴展性 – 使用多執行緒、多進程、Redis 支援的佇列,以及 Docker 就緒鏡像實現水平擴展。
  • 代理支援 – 支援請求層級或全域代理設定;預設使用贊助商提供的高品質住宅代理。
  • 快取層 – 可選本地、S3 或 Redis 快取,避免重複下載未變更的頁面。

典型工作流程

  1. 自架設(或使用公開 API https://api.anycrawl.dev)。
  2. 產生 API 金鑰(pnpm --filter api key:generate)。
  3. 使用包含 URL、引擎、限制與可選 json_options(用於 LLM 提取)的 JSON 負載,呼叫相應端點(/v1/scrape/v1/crawl/v1/search/v1/batch/scrape)。
  4. 接收包含原始 HTML/文字、可選提取欄位與元資料(狀態、快取資訊等)的 JSON 回應。

快速入門

  • 文件https://docs.anycrawl.dev
  • 沙盒https://anycrawl.dev/playground(互動式 API 測試器)。
  • Dockerdocker compose up 啟動後,在容器內產生金鑰(docker compose exec api pnpm --filter api key:generate)。
  • CLI: 倉儲提供 pnpm 腳本用於金鑰產生與測試。

適用對象

  • 需要新鮮網頁內容的 AI 代理(如檢索增強生成管道)。
  • 從網路建構訓練資料集的資料科學團隊。
  • 抓取 SERP 結果的 SEO/市場研究工具。
  • 需要可靠、可擴展抓取並支援可選 LLM 結構化的自動化平台。

授權 – MIT(寬鬆,允許商業使用)。


由 Any4AI 團隊開發,旨在為 AI 生態系統提供可靠、易於整合的爬取服務。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案