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)获取。它集成了多线程/多进程工作器、可选的 Redis 缓存,以及内置的 LLM 驱动结构化数据提取(JSON 模式)。该服务可自托管,也可通过 api.anycrawl.dev 的公共 API 使用。

核心功能

功能 详情
SERP 爬取 查询 Google(目前唯一支持的引擎),获取分页结果。
Web 抓取 获取单个 URL,支持三种引擎:cheerio(快速静态 HTML)、playwright 或 puppeteer(完整 JavaScript 渲染)。
站点爬取 支持深度限制、域名范围的遍历,可配置限制和路径过滤器。
批量任务 提交 URL 列表进行异步批量抓取;轮询状态并获取结果。
LLM 提取 在抓取请求中附加 json_options.schema;AnyCrawl 将页面内容转发给 OpenAI 兼容的 LLM(如 Atlas Cloud),并返回结构化 JSON。
代理支持 支持请求级 proxy 参数或全局 ANYCRAWL_PROXY_URL;提供默认代理,并附带住宅代理赞助链接。
可扩展性 工作器可在多个线程或进程中运行;Docker 镜像预装 CloakBrowser 二进制文件,实现浏览器高效复用。
缓存 可选 Redis 或 S3 后端缓存,避免重复下载未更改的页面。
API 优先 所有功能均通过 REST API 暴露(/v1/scrape、/v1/crawl、/v1/search、/v1/batch/scrape)。

典型用例

  • LLM 训练或 RAG 的数据收集 – 收集原始网页内容,使用内置模式提取功能生成可索引的干净 JSON。
  • 搜索引擎监控 – 定期抓取关键词集的 Google SERP 结果。
  • 大规模 Web 抓取流水线 – 结合批量任务、Redis 缓存和多进程工作器实现高吞吐量。
  • 需要最新网页内容的 AI 代理 – 从自主代理调用 API,可选择通过住宅代理路由以避免被机器人拦截。

快速上手

  1. 试用托管 API – 从 AnyCrawl 仪表板获取免费 API 密钥,直接调用端点(参见 README 示例)。
  2. 自托管 – 克隆仓库,运行 docker compose up -d(或本地启动 api 服务)。
    • 生成密钥:pnpm --filter api key:generate(或通过 docker exec)。
    • 设置环境变量如 ANYCRAWL_API_AUTH_ENABLED=true 及可选的代理/Redis 设置。
  3. 运行简单抓取:
    curl -X POST https://api.anycrawl.dev/v1/scrape \
         -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer <YOUR_KEY>' \
         -d '{"url":"https://example.com","engine":"cheerio"}'
    
  4. 添加 LLM 提取 – 在请求体中包含 json_options.schema;通过环境变量(DEFAULT_LLM_MODEL、ATLASCLOUD_API_KEY)配置 OpenAI 兼容提供者(如 Atlas Cloud)。

文档与社区

许可证 MIT – 宽松的开源许可证。

总结 AnyCrawl 提供了一个开箱即用、生产级的爬取/抓取服务,可无缝集成到 LLM 工作流中,是 AI 驱动数据管道、自主代理和 RAG 系统的实用构建模块。

相关

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