首页 / 开源榜单 / AnyCrawl

AnyCrawl

高性能Node.js/TypeScript网络爬虫,专为LLM优化,支持多搜索引擎抓取和结构化数据提取

TypeScriptMITCrawler
⭐ GitHubhttps://github.com/any4ai/AnyCrawl
3,381
Star 数
+197
Star 增速
2026年7月18日
最后更新
1,772
点击数

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 和机器学习应用场景中。其高性能、易用性和丰富的功能使其成为开发者和企业处理大规模数据抓取任务的理想选择。