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-domain、same-hostname等)遍历链接。 - 批量任务 – 一次性提交多个 URL,获取任务 ID,轮询状态,并获取分页结果。
- LLM 提取 – 提供 JSON 模式;AnyCrawl 调用 OpenAI 兼容的 LLM(如 Atlas Cloud)将原始页面内容转换为结构化 JSON。
- 可扩展性 – 使用多线程、多进程、Redis 支持的队列,以及 Docker 就绪镜像实现水平扩展。
- 代理支持 – 支持请求级或全局代理配置;默认使用赞助商提供的高质量住宅代理。
- 缓存层 – 可选本地、S3 或 Redis 缓存,避免重复下载未更改的页面。
典型工作流
- 自托管(或使用公开 API
https://api.anycrawl.dev)。 - 生成 API 密钥(
pnpm --filter api key:generate)。 - 使用包含 URL、引擎、限制和可选
json_options(用于 LLM 提取)的 JSON 负载,调用相应端点(/v1/scrape、/v1/crawl、/v1/search或/v1/batch/scrape)。 - 接收包含原始 HTML/文本、可选提取字段和元数据(状态、缓存信息等)的 JSON 响应。
快速入门
- 文档: https://docs.anycrawl.dev
- 沙盒: https://anycrawl.dev/playground(交互式 API 测试器)。
- Docker:
docker compose up启动后,在容器内生成密钥(docker compose exec api pnpm --filter api key:generate)。 - CLI: 仓库提供
pnpm脚本用于密钥生成和测试。
适用人群
- 需要新鲜网页内容的 AI 代理(如检索增强生成管道)。
- 从网络构建训练数据集的数据科学团队。
- 抓取 SERP 结果的 SEO / 市场研究工具。
- 需要可靠、可扩展抓取并支持可选 LLM 结构化的自动化平台。
许可证 – MIT(宽松,允许商业使用)。
由 Any4AI 团队开发,旨在为 AI 生态系统提供可靠、易于集成的爬取服务。
相关
- 项目
- 项目
- 项目
- 项目
- 项目