项目介绍#
AnyCrawl 是一个高性能的网络爬虫和数据抓取应用程序,专为现代 AI 应用场景设计。它不仅仅是一个简单的爬虫工具,而是一个功能全面的数据采集解决方案。
核心功能特性#
多样化的爬取模式#
- SERP 爬取:支持多搜索引擎
- 批量处理网页爬取:高效的单页面内容提取
- 站点爬取:智能化全站点遍历抓取
- 批量处理:支持大规模批量爬取任务
强大的技术架构#
- 多线程架构:充分利用系统资源,提升爬取效率
- 多进程支持:处理大型任务时表现卓越
- 多引擎支持:Cheerio、Playwright、Puppeteer 三大引擎任君选择
- LLM 优化:专门为大语言模型应用场景优化
技术栈与部署#
AnyCrawl 基于现代化的技术栈构建:
- Node.js + TypeScript:保证代码质量和开发效率
- Redis:提供高性能缓存支持
- Docker:一键部署,开箱即用快速部署
docker compose up --build
丰富的配置选项#
AnyCrawl 提供了灵活的环境变量配置,主要包括:
基础配置#
ANYCRAWL_API_PORT
:API 服务端口(默认 8080)ANYCRAWL_HEADLESS
:浏览器无头模式ANYCRAWL_AVAILABLE_ENGINES
:可用抓取引擎
网络配置#
ANYCRAWL_PROXY_URL
:代理服务器设置(支持 HTTP 和 SOCKS)ANYCRAWL_IGNORE_SSL_ERROR
:SSL 证书错误处理ANYCRAWL_KEEP_ALIVE
:连接保持策略
数据存储#
ANYCRAWL_API_DB_TYPE
:数据库类型(SQLite/PostgreSQL)ANYCRAWL_REDIS_URL
:Redis 连接配置
使用示例#
基础网页抓取#
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"
}'
搜索引擎结果抓取#
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"
}'
引擎选择策略#
AnyCrawl 提供三种抓取引擎,各有特色:
- Cheerio:静态 HTML 解析,速度最快,适合简单页面
- Playwright:现代 JavaScript 渲染引擎,功能强大
- Puppeteer:基于 Chrome 的 JavaScript 渲染,兼容性好
开发者可以根据具体需求选择最合适的引擎,实现性能与功能的完美平衡。
实用功能亮点#
- 代理支持:完美支持 HTTP 和 SOCKS 代理,轻松应对各种网络环境
- JavaScript 渲染:通过 Puppeteer 和 Playwright 支持,无论是 SPA 还是动态加载内容都能完美处理
- 批量处理:内置批量任务处理机制,大规模数据采集不再是难题
- API 友好:RESTful API 设计,集成简单便捷
项目地址#
- GitHub 地址:https://github.com/any4ai/anycrawl
- 官方文档:https://docs.anycrawl.dev