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 的渲染)
  • 站点爬取 – 从根 URL 开始,通过深度、限制和范围控制(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 生态系统提供可靠、易于集成的爬取服务。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目