Crawl4AI:开源 LLM 友好型网络爬虫与数据抓取工具
Crawl4AI 将网络转化为干净、LLM 就绪的 Markdown 格式,适用于 RAG、智能体和数据管道。快速、可控,经过 5 万 + 星标社区的实战检验。
✨ 查看最新更新 v0.8.0
✨ v0.8.0 新特性:崩溃恢复与预取模式!深度爬取崩溃恢复功能,支持通过 resume_state 和 on_state_change 回调处理长时间运行的爬取任务。新增 prefetch=True 模式,URL 发现速度提升 5-10 倍。关键安全修复:Docker API 默认禁用钩子,并阻止 file:// 协议 URL。发布说明 →
✨ 近期 v0.7.8 版本:稳定性与错误修复发布!本次更新包含 11 项错误修复,涉及 Docker API 问题、LLM 提取功能改进、URL 处理修复以及依赖项更新。发布说明 →
✨ 上一版本 v0.7.7:完整的自托管平台,具备实时监控功能!企业级监控仪表板、全面的 REST API、WebSocket 流式传输以及智能浏览器池管理。发布说明 →
🤓 我的个人故事
我是在 Amstrad 电脑上长大的,这要感谢我的父亲,从此便与构建结下不解之缘。研究生时期,我专攻自然语言处理,并为研究项目开发网络爬虫。正是在那里,我深刻认识到信息提取的重要性。
2023 年,我需要将网页转为 Markdown 格式。当时所谓的 “开源” 方案不仅要求注册账号、提供 API 密钥,还要收取 16 美元,结果功能还大打折扣。我一怒之下进入狂暴模式,几天内就开发出 Crawl4AI,没想到它迅速火遍全网。如今,这已是 GitHub 上星标数最高的网页爬虫工具。
我将其开源,可用性任何人都可以无门槛使用。现在我正在为这个平台搭建基础。可负担性任何人都能进行大规模的爬取,而无需花费巨额资金。如果这引起了您的共鸣,欢迎加入我们,提供反馈,或者直接开始爬取一些令人惊叹的内容。
为什么开发者选择 Crawl4AI
LLM 就绪输出# 智能 Markdown 使用指南 ## 概述 智能 Markdown 是一种轻量级标记语言,支持丰富的文档格式化功能,包括标题、表格、代码块和引用提示。 ## 核心功能 ### 1. 标题系统 使用 # 符号创建分级标题: markdown # 一级标题 ## 二级标题 ### 三级标题 ### 2. 表格创建 使用管道符和连字符构建表格
实践中的快速性异步浏览器池、缓存、最小跳数
完全掌控会话、代理、Cookies、用户脚本、钩子
自适应智能,学习网站模式,只探索重要内容
随处部署零密钥、命令行界面与 Docker、云端友好
🚀 快速开始
安装 Crawl4AI:
# Install the package
pip install -U crawl4ai
# For pre release versions
pip install crawl4ai --pre
# Run post-installation setup
crawl4ai-setup
# Verify your installation
crawl4ai-doctor如果您遇到任何浏览器相关问题,可以手动安装它们:
python -m playwright install --with-deps chromium使用 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())或使用新的命令行界面:
# Basic crawl with markdown output
crwl https://www.nbcnews.com/business -o markdown
# Deep crawl with BFS strategy, max 10 pages
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10
# Use LLM extraction with a specific question
crwl https://www.example.com/products -q "Extract all product prices"https://github.com/unclecode/crawl4ai
功能特色
📝 Markdown 生成
🧹 清理 Markdown:生成干净、结构化的 Markdown,确保格式准确无误。
🎯 适配 Markdown:基于启发式过滤,去除噪声与无关部分,实现 AI 友好型处理。
🔗 引用与参考文献:将页面链接转换为带清晰引文的编号参考文献列表。
🛠️ 自定义策略:用户可根据特定需求,创建专属的 Markdown 生成策略。
📚 BM25 算法:采用基于 BM25 的筛选机制,用于提取核心信息并剔除无关内容。
📊 结构化数据提取
🌐 浏览器集成
🖥️ 托管浏览器:使用用户自有浏览器,享有完全控制权,有效规避机器人检测。
🔄 远程浏览器控制:通过连接 Chrome 开发者工具协议,实现远程大规模数据抓取。
👤 浏览器配置文件管理器:创建并管理持久化配置文件,包含保存的认证状态、Cookies 及个性化设置。
🔒 会话管理:保持浏览器状态并复用,以支持多步骤爬取任务。
🧩 代理支持:无缝连接带身份验证的代理服务器,确保安全访问。
⚙️ 全面浏览器控制:可修改请求头、Cookie、用户代理等参数,实现高度定制化的网页抓取配置。
🌍 多浏览器支持:兼容 Chromium、Firefox 和 WebKit。
📐 动态视口调整:自动调整浏览器视口以匹配页面内容,确保所有元素完整渲染与捕获。
🔎 爬取与抓取
🖼️媒体支持提取图像、音频、视频以及响应式图像格式,例如和picture.
🚀动态爬取执行 JavaScript 并等待异步或同步操作以提取动态内容。
📸截图在爬取过程中捕获页面截图,用于调试或分析。
📂原始数据抓取直接处理原始 HTML(或本地文件(file://).
🔗全面链接提取提取内部链接、外部链接以及嵌入的 iframe 内容。
🛠️可自定义钩子在每个步骤定义钩子以自定义爬取行为(支持基于字符串和函数两种 API)。
💾缓存缓存数据以提高速度并避免重复获取。
📄元数据提取从网页中提取结构化元数据。
📡IFrame 内容提取从嵌入式 iframe 内容中无缝提取。
🕵️延迟加载处理等待图像完全加载,确保不会因懒加载而错过任何内容。
🔄全页面扫描模拟滚动以加载并捕获所有动态内容,非常适合无限滚动页面。
🚀 部署
🐳Docker 化设置优化后的 Docker 镜像,搭载 FastAPI 服务器,便于轻松部署。
🔑安全认证内置 JWT 令牌认证,保障 API 安全。
🔄API 网关一键部署,支持基于 API 工作流程的安全令牌认证。
🌐可扩展架构专为大规模生产而设计,并优化了服务器性能。
☁️云端部署适用于各大云平台的即用型部署配置。
🎯 附加功能
🕶️隐身模式通过模仿真实用户行为来规避机器人检测。
🏷️基于标签的内容提取根据自定义标签、头部信息或元数据优化爬取过程。
🔗链接分析提取并分析所有链接以进行详细数据探索。
🛡️错误处理稳健的错误管理,确保无缝执行。
🔐CORS 与静态资源服务支持基于文件系统的缓存和跨源请求。
📖清晰的文档简化和更新的入门指南与高级使用指南。
🙌社区认可承认贡献者和拉取请求以确保透明度。
安装 🛠️
Crawl4AI 提供灵活的安装选项,以适应不同的使用场景。您可以选择将其作为 Python 包安装,或者使用 Docker 容器化部署。
🐍 使用 pip
选择最适合您需求的安装选项:
Basic Installation
对于基础的网络爬取和抓取任务:
pip install crawl4ai
crawl4ai-setup # Setup the browser
默认情况下,这将安装 Crawl4AI 的异步版本,使用 Playwright 进行网络爬取。
👉注意当你安装 Crawl4AI 时,应该会自动安装并设置 Playwright。但是,如果您遇到任何与 Playwright 相关的错误,可以使用以下方法之一手动安装:
通过命令行:
playwright install
如果上述方法无效,请尝试以下更具体的命令:
python -m playwright install chromium
第二种方法在某些情况下已被证明更为可靠。
Installation with Synchronous Version
同步版本已被弃用,并将在未来版本中移除。如果您需要使用 Selenium 的同步版本:
pip install crawl4ai[sync]
Development Installation
对于计划修改源代码的贡献者:
git clone https://github.com/unclecode/crawl4ai.git
cd crawl4ai
pip install -e . # Basic installation in editable mode
安装可选功能:
pip install -e “.[torch]” # With PyTorch features
pip install -e “.[transformer]” # With Transformer features
pip install -e “.[cosine]” # With cosine similarity features
pip install -e “.[sync]” # With synchronous crawling (Selenium)
pip install -e “.[all]” # Install all optional features
🐳 Docker 部署
🚀现已推出!我们全新设计的 Docker 实施方案现已推出!这一全新解决方案让部署比以往任何时候都更加高效、无缝。
New Docker Features
新的 Docker 实现包含:
实时监控仪表盘实时系统指标与浏览器池可见性
浏览器池化通过页面预热实现更快的响应时间。
交互式游乐场测试并生成请求代码
MCP 集成用于直接连接 AI 工具(如 Claude Code)
全面的 API 端点包括 HTML 提取、屏幕截图、PDF 生成和 JavaScript 执行
多架构支持自动检测(AMD64/ARM64)
优化资源通过改进内存管理
Getting Started
Pull and run the latest release
docker pull unclecode/crawl4ai:latest
docker run -d -p 11235:11235 –name crawl4ai –shm-size=1g unclecode/crawl4ai:latest
Visit the monitoring dashboard at http://localhost:11235/dashboard
Or the playground at http://localhost:11235/playground
Quick Test
运行一个快速测试(适用于两种 Docker 选项):
import requests
Submit a crawl job
response = requests.post(
“http://localhost:11235/crawl",
json={“urls”: [“https://example.com"], “priority”: 10}
)
if response.status_code == 200:
print(“Crawl job submitted successfully.”)
if “results” in response.json():
results = response.json()[“results”]
print(“Crawl job completed. Results:”)
for result in results:
print(result)
else:
task_id = response.json()[“task_id”]
print(f”Crawl job submitted. Task ID:: {task_id}”)
result = requests.get(f”http://localhost:11235/task/{task_id}")
更多示例,请参阅我们的Docker 示例对于高级配置、监控功能以及生产部署,请参阅我们的自托管指南.
最后编辑:Ddd4j 更新时间:2026-01-22 19:15