20260429:一些新东西

This commit is contained in:
2026-04-29 16:28:13 +08:00
parent 0b1535dfaf
commit 56c4d3ef7c
70 changed files with 2798 additions and 3 deletions

161
concepts/crawl4ai.md Normal file
View File

@@ -0,0 +1,161 @@
# Crawl4AI
**类型**: 开源工具,数据提取,网页爬虫
**领域**: AI 应用开发数据工程RAG 系统
**许可证**: Apache 2.0
**核心功能**: 智能网页内容提取与结构化转换
## 定义
Crawl4AI 是一个专为大型语言模型LLM和 AI 应用设计的开源网页爬虫与数据提取工具。它能够自动将网页内容转换为结构化的 Markdown 格式,简化 RAG检索增强生成和模型微调所需的数据获取流程。
## 核心特性
### 1. 智能内容提取
- **自动转换**: 将网页内容自动转换为结构化 Markdown 格式
- **多种提取方式**: 支持 JSON CSS 提取、JSON XPath 提取、LLM 提取
- **数据获取简化**: 专门为 RAG 和微调场景优化数据获取流程
### 2. 技术架构
- **协议支持**: 支持 HTTP(S) 协议
- **合规性**: 遵守 robots.txt 规则
- **开源协议**: Apache 2.0 许可证
### 3. 配置灵活性
- **自定义 User-Agent**: 支持自定义请求头标识
- **代理设置**: 支持通过代理服务器访问
- **会话管理**: 支持会话状态管理
### 4. 缓存机制
- **多种缓存模式**:
- ENABLED默认: 启用缓存
- DISABLED: 禁用缓存
- READ_ONLY: 只读模式
- WRITE_ONLY: 只写模式
- BYPASS: 绕过缓存
- **缓存管理命令**:
- `aclear_cache()`: 清除缓存
- `aflush_cache()`: 刷新缓存
## 应用场景
### 1. RAG 数据准备
- 自动抓取和格式化网页内容用于知识库构建
- 支持大规模数据采集和预处理
- 为向量数据库提供标准化输入
### 2. 模型微调
- 获取高质量训练数据
- 支持特定领域内容抓取
- 数据清洗和格式化
### 3. AI 应用开发
- 为 AI 代理提供实时数据获取能力
- 支持自动化信息检索流程
- 知识图谱构建的数据源
## 技术亮点
1. **LLM 友好**: 专为大型语言模型应用设计,输出格式直接可用
2. **易于集成**: 简单的 API 设计,便于嵌入现有工作流
3. **开源生态**: Apache 2.0 许可证,支持社区贡献和二次开发
4. **灵活配置**: 丰富的配置选项适应不同场景需求
## 与其他工具的比较
| 特性 | Crawl4AI | 传统爬虫 | Scrapy | Firecrawl |
|------|----------|----------|--------|-----------|
| AI/LLM 优化 | ✅ 专门设计 | ❌ 通用 | ❌ 通用 | ✅ 支持 |
| Markdown 输出 | ✅ 原生支持 | ❌ 需转换 | ❌ 需转换 | ✅ 支持 |
| 开源 | ✅ Apache 2.0 | 部分 | ✅ BSD | ❌ 闭源 |
| 易用性 | ✅ 简单 API | 中等 | 较复杂 | ✅ 简单 |
| 缓存机制 | ✅ 多种模式 | 需自建 | 需配置 | ✅ 内置 |
## 在 AI 工作流中的位置
```
数据源(网页)
Crawl4AI抓取 + 提取 + 格式化)
结构化数据Markdown/JSON
RAG 系统 / 微调数据 / 知识库
LLM 应用
```
## 使用示例
### 基础抓取
```python
from crawl4ai import AsyncWebCrawler
async with AsyncWebCrawler() as crawler:
result = await crawler.arun("https://example.com")
print(result.markdown)
```
### 配置缓存
```python
from crawl4ai import CacheMode
# 设置缓存模式
crawler.config.cache_mode = CacheMode.ENABLED
# 清除缓存
await crawler.aclear_cache()
```
### 自定义提取
```python
# 使用 CSS 选择器提取
result = await crawler.arun(
url="https://example.com",
extraction_strategy=JsonCssExtractionStrategy(schema)
)
```
## 优势与局限
### 优势
1. **AI 原生**: 专为 AI/LLM 工作流设计
2. **格式友好**: 直接输出 Markdown无需额外处理
3. **轻量级**: 简单易用,快速上手
4. **开源免费**: Apache 2.0 许可证
### 局限
1. **功能专注**: 主要针对内容提取,复杂抓取需配合其他工具
2. **性能**: 大规模并发可能需要额外优化
3. **生态**: 相对较新,社区生态仍在建设中
## 发展趋势
### 技术演进
1. **多模态支持**: 扩展支持图片、视频等非文本内容
2. **智能解析**: 集成 LLM 进行更智能的内容理解
3. **分布式**: 支持大规模分布式抓取
### 应用扩展
1. **企业知识库**: 自动化企业文档采集
2. **学术研究**: 学术文献自动抓取和整理
3. **竞品分析**: 自动化市场信息监控
## 相关概念
- [[knowledge-bank]] — AI 辅助开发时代的知识管理系统
- [[rag-systems]] — 检索增强生成系统
- [[llm-applications]] — 大型语言模型应用
- [[web-scraping]] — 网页抓取技术
- [[data-extraction]] — 数据提取技术
## 参考资源
1. 知乎原文: https://zhuanlan.zhihu.com/p/717965307
2. Crawl4AI 开源项目文档
3. Apache 2.0 许可证
---
*创建时间: 2026-04-22*
*最后更新: 2026-04-22*
*相关文章: [[crawl4ai-open-source-web-crawler]]*