这个项目能做什么
Crawl4AI是一款开源Python库和CLI工具,专为网络爬取与抓取设计,能够生成干净、适合LLM使用的Markdown输出。它广泛用于构建RAG管道、AI代理和数据提取工作流。
## 概述
Crawl4AI将网页转化为适合下游AI处理的结构化Markdown。支持程序化Python调用和命令行界面,可选LLM驱动的结构化数据提取以及基于CSS/XPath的模式提取。
## 核心能力
### Markdown生成
- 生成干净、结构化的Markdown,包含标题、表格和代码块
- Fit Markdown模式应用启发式过滤去除噪音和不相关内容
- 可引用输出的链接转换为编号参考文献
- 基于BM25的内容过滤,实现查询相关提取
- 可插拔的Markdown生成策略
### 结构化数据提取
- 通过LiteLLM进行LLM驱动提取,支持开源和专有模型
- 使用CSS选择器和XPath基于JSON schema提取
- 分块策略(基于主题、正则、句子级)用于定向处理
- 余弦相似度搜索实现语义内容匹配
### 浏览器集成
- 由Playwright驱动的异步浏览器池
- 托管浏览器模式,使用用户自有的浏览器配置文件,支持已保存的认证状态和Cookie
- 通过Chrome DevTools Protocol远程控制浏览器
- 支持带认证的代理
- 隐身模式降低机器人检测风险
- 多浏览器支持(Chromium、Firefox、WebKit)
- 动态视口调整
### 爬取特性
- 支持JavaScript执行,异步/同步等待动态内容
- 爬取过程中截图
- 媒体提取(图片、音频、视频、响应式srcset/picture格式)
- 原始HTML和本地文件处理
- 全面的链接提取,包括iframe内容
- 懒加载处理和全页扫描支持无限滚动
- 每个爬取步骤的钩子自定义
- 内置缓存
### 部署
- Docker化的FastAPI服务器用于API工作流
- JWT令牌认证(最近版本默认启用)
- 监控仪表板和交互式测试环境位于/dashboard和/playground
- MCP集成用于AI工具连接
- 多架构Docker镜像(AMD64/ARM64)
- 支持云部署
## 安装
```bash
pip install -U crawl4ai
crawl4ai-setup
```
手动安装Playwright:
```bash
python -m playwright install --with-deps chromium
```
## 使用
### Python API
```python
import asyncio
from crawl4ai import AsyncWebCrawler
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(url="https://example.com")
print(result.markdown)
asyncio.run(main())
```
### 命令行
```bash
# 基础爬取
crwl https://example.com -o markdown
# 深度爬取
crwl https://example.com --deep-crawl bfs --max-pages 10
# LLM提取
crwl https://example.com -q "Extract all product prices"
```
### Docker
```bash
docker pull unclecode/crawl4ai:latest
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest
```
然后访问http://localhost:11235/dashboard查看监控界面,或访问http://localhost:11235/playground进行交互式测试。
## 项目详情
- 仓库:unclecode/crawl4ai
- PyPI:crawl4ai
- 文档:https://docs.crawl4ai.com/
- Discord社区:https://discord.gg/jP8KfhDhyN
- 赞助:https://github.com/sponsors/unclecode
该项目强调开放性和经济实惠,定位为商业网络提取API的自托管替代方案。已积累超过50,000个GitHub星标,并通过定期发布积极维护安全性。
评论
0 评分人数达到10人后显示
登录后参与讨论。