
这套源码属于 Python 网页爬虫与数据采集类项目,核心是给大语言模型喂干净、结构化的网页语料。
Crawl4AI 把动态页面、反爬场景和 RAG 预处理里最麻烦的环节(清洗、抽取、分块)直接做成可组合的模块,适合用来学习现代爬虫的工程实现。
源码简介
Crawl4AI 是一个开源的 Python 网页爬虫与抓取框架,主打”对大模型友好”。
它把页面渲染、Markdown 清洗、结构化抽取和深度爬取封装成统一 API,输出可直接用于问答、检索和知识库的干净文本。
本源码包含完整库代码、命令行工具、Docker 部署服务与示例,适合学习 LLM 数据采集、RAG 语料预处理和浏览器自动化方案。
适用场景
- 为大模型 / RAG 准备网页语料与知识库预处理
- 从结构化页面中抽取商品、搜索结果等数据
- 学习现代 Python 爬虫的并发、缓存与反爬实现
技术栈与运行环境
- 前端:提供监控 Dashboard / Playground 网页界面,由 FastAPI 静态托管
- 后端:Python 3.10+,核心基于 Playwright 浏览器引擎
- 数据库:内置 SQLite 作为抓取结果缓存(async_database.py)
- 运行环境:需要 Chromium / WebKit / Firefox 浏览器内核,支持 Docker 一键部署
- 其他依赖:LLM SDK(OpenAI / Anthropic / Ollama 等)、PyJWT、FastAPI、transformers(本地模型可选)
功能亮点
- LLM 友好抓取与 Markdown 生成:AsyncWebCrawler 配合 DefaultMarkdownGenerator,可输出干净 Markdown、Fit Markdown,并用 BM25 / Pruning 过滤器去噪
- 结构化数据抽取:支持 LLMExtractionStrategy(对接各类大模型)、JsonCssExtractionStrategy、JsonXPathExtractionStrategy 与 CosineStrategy 语义抽取
- 深度爬取策略:内置 BFS / DFS / Best-First 三种深度爬取(deep_crawling/),可按层级与评分遍历站点
- 浏览器自动化与反检测:BrowserManager + BrowserProfiler 管理持久化浏览器档案、Cookie 与代理;antibot_detector 模块处理隐身与反爬绕过
- 并发调度与缓存:MemoryAdaptiveDispatcher / SemaphoreDispatcher / RateLimiter 控制抓取节奏,AsyncDatabaseManager(SQLite)与 CacheContext 做结果缓存
- 服务化与部署:deploy/docker 提供 FastAPI 服务(端口 11235)+ PyJWT 鉴权、MCP bridge 与 Docker 部署,另有 Google 搜索与 Amazon 商品专用爬虫
安装与部署提示
- 安装:执行 `pip install crawl4ai` 后运行 `crawl4ai-setup` 完成浏览器与依赖初始化;开发版可克隆本仓库后 `pip install -e .`
- 基础使用:在 Python 中 `from crawl4ai import AsyncWebCrawler`,调用 `arun()` 即可抓取并输出 Markdown;命令行支持 `crawl4ai ` 直接运行
- 服务部署:进入 `deploy/docker`,用 `docker compose up` 启动 FastAPI 服务,默认地址 `http://localhost:11235`,可在 Dashboard / Playground 提交抓取任务,需配置 API Token 或 JWT
截图与演示说明
- FastAPI 服务的监控 Dashboard 与 Playground 页面(deploy/docker,访问 11235 端口)
- CLI 执行 `crawl4ai` 命令的终端输出(Markdown / JSON 结果)
- 浏览器持久化档案管理(BrowserProfiler)相关配置示例
- 深度爬取(BFS / DFS)的链接遍历与结果导出页面
- Google 搜索、Amazon 商品专用爬虫的抽取结果示例
常见问题
#### 运行前需要注意什么?
需要 Python 3.10 及以上,并安装 Playwright 浏览器内核。
若用于 LLM 抽取,需自备模型 API Key 或本地模型环境。
抓取目标站时请遵守其 robots.txt 与服务条款。
#### 适合二次开发吗?
适合。
源码采用清晰的模块划分(crawler / extraction / deep_crawling / processors / deploy),并提供了 BaseCrawler 插件入口(hub.py)与自定义策略接口,便于扩展新的抽取、过滤与爬取逻辑。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
额外提醒:Crawl4AI 具备真实浏览器操作与代理能力,请仅用于你有权限的站点与合规场景,遵守目标站 robots.txt 与服务条款,不得用于未授权抓取、绕过防护或违规数据采集。
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。
如用于 SEO 自动化或大规模采集,请遵守搜索引擎与平台规则,不得用于垃圾内容生产、未授权采集或违反服务条款的用途。
官网:crawl4ai.com
GitHub开源地址:https://github.com/unclecode/crawl4ai
