OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Crawl4AI — 为 LLM 与数据抓取场景打造的智能网页爬虫

Crawl4AI — 为 LLM 与数据抓取场景打造的智能网页爬虫

 
  software ·  2026-03-19 11:00:22 · 8 次点击  · 0 条评论  

🚀🤖 Crawl4AI:开源 LLM 友好型网络爬虫与抓取工具

GitHub Stars
GitHub Forks

PyPI version
Python Version
Downloads
GitHub Sponsors


🚀 Crawl4AI 云 API — 封闭测试版(即将推出)

可靠、大规模的网页提取,构建目标是比现有任何解决方案都显著更具成本效益

👉 点击此处申请抢先体验
我们将分阶段开放,并与早期用户紧密合作。名额有限。


Follow on X Follow on LinkedIn Join our Discord

Crawl4AI 将网络转化为干净、可供 LLM 直接使用的 Markdown 格式,适用于 RAG、智能体和数据管道。它快速、可控,并已通过一个拥有 5 万+星标的社区进行实战测试。

✨ 查看最新更新 v0.8.0

v0.8.0 新特性:崩溃恢复与预取模式!深度爬取崩溃恢复功能,包含用于长时间运行爬取的 resume_stateon_state_change 回调。新的 prefetch=True 模式可实现 5-10 倍更快的 URL 发现。针对 Docker API 的关键安全修复(默认禁用钩子,阻止 file:// URL)。发布说明 →

✨ 最近的 v0.7.8:稳定性与错误修复版本!包含 11 项错误修复,解决了 Docker API 问题、LLM 提取改进、URL 处理修复和依赖项更新。发布说明 →

✨ 之前的 v0.7.7:完整的自托管平台与实时监控!企业级监控仪表板、全面的 REST API、WebSocket 流式传输和智能浏览器池管理。发布说明 →

🤓 我的个人故事 多亏了我的父亲,我在一台 Amstrad 电脑上长大,并且从未停止过构建。在研究生阶段,我专攻 NLP,并为研究构建爬虫。正是在那里,我认识到数据提取的重要性。 2023 年,我需要将网页转换为 Markdown。当时的“开源”选项需要账户、API 令牌和 16 美元,但仍然无法满足需求。我进入了“涡轮增压愤怒模式”,在几天内构建了 Crawl4AI,然后它迅速走红。现在,它已成为 GitHub 上星标最多的爬虫项目。 我将其开源是为了**可用性**,任何人都可以无障碍地使用它。现在,我正在构建一个平台以实现**可负担性**,让任何人都能运行大规模的爬取任务而无需花费巨资。如果这引起了你的共鸣,欢迎加入,发送反馈,或者只是用它来爬取一些很棒的内容。
为什么开发者选择 Crawl4AI - **LLM 就绪的输出**,智能 Markdown 包含标题、表格、代码、引用提示 - **实际应用速度快**,异步浏览器池、缓存、最小化跳转 - **完全控制**,会话、代理、Cookie、用户脚本、钩子 - **自适应智能**,学习网站模式,仅探索重要内容 - **随处部署**,无需密钥,提供 CLI 和 Docker,云友好

🚀 快速开始

  1. 安装 Crawl4AI:
# 安装包
pip install -U crawl4ai

# 安装预发布版本
pip install crawl4ai --pre

# 运行安装后设置
crawl4ai-setup

# 验证安装
crawl4ai-doctor

如果遇到任何与浏览器相关的问题,可以手动安装:

python -m playwright install --with-deps chromium
  1. 使用 Python 运行一个简单的网页爬取:
import asyncio
from crawl4ai import *

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://www.nbcnews.com/business",
        )
        print(result.markdown)

if __name__ == "__main__":
    asyncio.run(main())
  1. 或者使用新的命令行界面:
# 基础爬取,输出 Markdown
crwl https://www.nbcnews.com/business -o markdown

# 深度爬取,使用 BFS 策略,最多 10 页
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

# 使用 LLM 提取回答特定问题
crwl https://www.example.com/products -q "提取所有产品价格"

💖 支持 Crawl4AI

🎉 赞助计划现已开放! 在为 5.1 万+开发者提供支持并经过一年的发展后,Crawl4AI 现为初创公司企业推出专属支持。成为前 50 名创始赞助商之一,将永久在我们的名人堂中获得认可。

Crawl4AI 是 GitHub 上排名第一的趋势开源网络爬虫。您的支持使其保持独立、创新,并为社区免费提供——同时让您直接获得高级权益。

[![成为赞助商](https://img.shields.io/badge/Become%20a%20Sponsor-pink?style=for-the-badge&logo=github-sponsors&logoColor=white)](https://github.com/sponsors/unclecode) [![当前赞助商](https://img.shields.io/github/sponsors/unclecode?style=for-the-badge&logo=github&label=Current%20Sponsors&color=green)](https://github.com/sponsors/unclecode)

🤝 赞助层级

  • 🌱 支持者 ($5/月) — 加入数据民主化运动
  • 🚀 构建者 ($50/月) — 优先支持与功能抢先体验
  • 💼 成长团队 ($500/月) — 双周同步与优化帮助
  • 🏢 数据基础设施合作伙伴 ($2000/月) — 包含专属支持的全面合作伙伴关系
    可定制方案 - 详情及联系方式请见 SPONSORS.md

为什么要赞助?
没有速率限制的 API。没有锁定。在 Crawl4AI 创建者的直接指导下,构建并拥有您自己的数据管道。

查看所有层级与权益 →

✨ 功能特性

📝 Markdown 生成 - 🧹 **干净的 Markdown**:生成干净、结构化的 Markdown,格式准确。 - 🎯 **适配 Markdown**:基于启发式过滤,去除噪音和无关部分,便于 AI 处理。 - 🔗 **引用和参考文献**:将页面链接转换为带清晰引用的编号参考文献列表。 - 🛠️ **自定义策略**:用户可以创建针对特定需求定制的 Markdown 生成策略。 - 📚 **BM25 算法**:采用基于 BM25 的过滤来提取核心信息并去除无关内容。
📊 结构化数据提取 - 🤖 **LLM 驱动提取**:支持所有 LLM(开源和专有)进行结构化数据提取。 - 🧱 **分块策略**:实现分块(基于主题、正则表达式、句子级别)以进行针对性内容处理。 - 🌌 **余弦相似度**:基于用户查询查找相关内容块,用于语义提取。 - 🔎 **基于 CSS 的提取**:使用 XPath 和 CSS 选择器进行快速的基于模式的数据提取。 - 🔧 **模式定义**:定义自定义模式,用于从重复模式中提取结构化 JSON。
🌐 浏览器集成 - 🖥️ **托管浏览器**:使用用户拥有的浏览器,完全控制,避免机器人检测。 - 🔄 **远程浏览器控制**:连接到 Chrome 开发者工具协议,进行远程、大规模数据提取。 - 👤 **浏览器配置文件**:创建和管理包含保存的身份验证状态、Cookie 和设置的持久配置文件。 - 🔒 **会话管理**:保留浏览器状态并在多步爬取中重复使用。 - 🧩 **代理支持**:无缝连接到带身份验证的代理,确保安全访问。 - ⚙️ **完全浏览器控制**:修改请求头、Cookie、用户代理等,以定制爬取设置。 - 🌍 **多浏览器支持**:兼容 Chromium、Firefox 和 WebKit。 - 📐 **动态视口调整**:自动调整浏览器视口以匹配页面内容,确保完整渲染和捕获所有元素。
🔎 爬取与抓取 - 🖼️ **媒体支持**:提取图像、音频、视频以及响应式图像格式如 `srcset` 和 `picture`。 - 🚀 **动态爬取**:执行 JavaScript 并等待异步或同步加载,以提取动态内容。 - 📸 **截图**:在爬取过程中捕获页面截图,用于调试或分析。 - 📂 **原始数据爬取**:直接处理原始 HTML (`raw:`) 或本地文件 (`file://`)。 - 🔗 **全面的链接提取**:提取内部链接、外部链接和嵌入的 iframe 内容。 - 🛠️ **可定制的钩子**:在每个步骤定义钩子以自定义爬取行为(支持字符串和基于函数的 API)。 - 💾 **缓存**:缓存数据以提高速度并避免重复抓取。 - 📄 **元数据提取**:从网页检索结构化元数据。 - 📡 **IFrame 内容提取**:无缝提取嵌入的 iframe 内容。 - 🕵️ **懒加载处理**:等待图像完全加载,确保不会因懒加载而遗漏内容。 - 🔄 **全页扫描**:模拟滚动以加载和捕获所有动态内容,非常适合无限滚动页面。
🚀 部署 - 🐳 **Docker 化设置**:优化的 Docker 镜像,包含 FastAPI 服务器,便于部署。 - 🔑 **安全身份验证**:内置 JWT 令牌身份验证,确保 API 安全。 - 🔄 **API 网关**:一键部署,带有安全的令牌身份验证,适用于基于 API 的工作流。 - 🌐 **可扩展架构**:专为大规模生产环境设计,优化服务器性能。 - ☁️ **云部署**:适用于主要云平台的即用型部署配置。
🎯 附加功能 - 🕶️ **隐身模式**:通过模拟真实用户来避免机器人检测。 - 🏷️ **基于标签的内容提取**:根据自定义标签、标题或元数据优化爬取。 - 🔗 **链接分析**:提取并分析所有链接,用于详细的数据探索。 - 🛡️ **错误处理**:强大的错误管理,确保无缝执行。 - 🔐 **CORS 与静态服务**:支持基于文件系统的缓存和跨域请求。 - 📖 **清晰的文档**:简化并更新的指南,便于入门和高级使用。 - 🙌 **社区认可**:表彰贡献者和拉取请求,保持透明度。

立即试用!

✨ 在 Open In Colab 中体验

✨ 访问我们的 文档网站

安装 🛠️

Crawl4AI 提供灵活的安装选项以适应各种用例。您可以将其作为 Python 包安装或使用 Docker。

🐍 使用 pip 选择最适合您需求的安装选项: ### 基础安装 用于基础的网页爬取和抓取任务:
pip install crawl4ai
crawl4ai-setup # 设置浏览器
默认情况下,这将安装 Crawl4AI 的异步版本,使用 Playwright 进行网页爬取。 👉 **注意**:安装 Crawl4AI 时,`crawl4ai-setup` 应自动安装并设置 Playwright。但是,如果遇到任何与 Playwright 相关的错误,您可以使用以下方法之一手动安装: 1. 通过命令行: ```bash playwright install ``` 2. 如果上述方法无效,请尝试这个更具体的命令: ```bash python -m playwright install chromium ``` 在某些情况下,第二种方法被证明更可靠。 --- ### 安装同步版本 同步版本已弃用,将在未来版本中移除。如果您需要使用 Selenium 的同步版本:
pip install crawl4ai[sync]
--- ### 开发安装 适用于计划修改源代码的贡献者:
git clone https://github.com/unclecode/crawl4ai.git
cd crawl4ai
pip install -e .                    # 以可编辑模式进行基础安装
安装可选功能:
pip install -e ".[torch]"           # 包含 PyTorch 功能
pip install -e ".[transformer]"     # 包含 Transformer 功能
pip install -e ".[cosine]"          # 包含余弦相似度功能
pip install -e ".[sync]"            # 包含同步爬取功能 (Selenium)
pip install -e ".[all]"             # 安装所有可选功能
🐳 Docker 部署 > 🚀 **现已推出!** 我们完全重新设计的 Docker 实现来了!这个新解决方案使部署比以往任何时候都更高效、更无缝。 ### 新的 Docker 功能 新的 Docker 实现包括: - **实时监控仪表板**,包含实时系统指标和浏览器池可见性 - **浏览器池**,带有页面预热功能,以实现更快的响应时间 - **交互式演练场**,用于测试和生成请求代码 - **MCP 集成**,用于直接连接到 AI 工具如 Claude Code - **全面的 API 端点**,包括 HTML 提取、截图、PDF 生成和 JavaScript 执行 - **多架构支持**,自动检测 (AMD64/ARM64) - **优化的资源**,改进了内存管理 ### 开始使用
# 拉取并运行最新版本
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
### 快速测试 运行快速测试(适用于两种 Docker 选项):
import requests

# 提交爬取任务
response = requests.post(
    "http://localhost:11235/crawl",
    json={"urls": ["https://example.com"], "priority": 10}
)
if response.status_code == 200:
    print("爬取任务提交成功。")

if "results" in response.json():
    results = response.json()["results"]
    print("爬取任务完成。结果:")
    for result in results:
        print(result)
else:
    task_id = response.json()["task_id"]
    print(f"爬取任务已提交。任务 ID: {task_id}")
    result = requests.get(f"http://localhost:11235/task/{task_id}")
更多示例,请参阅我们的 [Docker 示例](https://github.com/unclecode/crawl4ai/blob/main/docs/examples/docker_example.py)。关于高级配置、监控功能和生产部署,请参阅我们的 [自托管
8 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 20 ms
Developed with Cursor