← 返回信息流
GitHub 热榜GitHub Trending · 日·1 小时前

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

原标题:unclecode/crawl4ai
Python71,621 stars+195 今日

速览

Crawl4AI 是一个专为大型语言模型(LLM)优化的开源网络爬虫和抓取工具,支持结构化输出,方便直接集成到 AI 工作流、RAG 系统或数据科学管线中,适用于需要从网页批量获取训练数据或实时信息的场景。

AI 深度解读

这是什么

Crawl4AI 是一个基于 Python 的开源网络爬虫,专为将网页内容转换为干净、结构化的 Markdown 格式而设计,可直接用于 LLM(大语言模型)的 RAG、代理以及数据管道。项目托管在 GitHub 上,主语言 Python,截至当前已获得超过 51,000 星,是 GitHub 上最受欢迎的爬虫之一。Crawl4AI 提供完整的异步 API、命令行工具以及 Docker 部署方案,支持从简单页面抓取到深度爬取、结构提取、浏览器会话管理等复杂场景。

解决的问题

现有网页转 Markdown 的方案通常存在以下痛点:要求注册账户、申请 API Token、支付高昂费用(例如有商业服务索价 $16 一次),且输出质量参差不齐。Crawl4AI 以完全开源(MIT 许可)的方式解决了这些限制,用户无需任何账户、Token 或付费,即可运行大规模爬取。它专为 AI 场景优化,能生成包含标题、表格、代码块和引用提示的智能 Markdown,减少后处理工作量。此外,项目还解决了动态内容提取、反爬规避、持久化会话管理等工程难题,让开发者可以零成本构建自己的数据管道。

核心功能

  • Markdown 生成

    • Clean Markdown:清除噪音、保留语义结构。
    • Fit Markdown:基于启发式过滤,仅保留与 AI 处理相关的核心内容。
    • Citations & References:将页面链接转换为编号引用列表。
    • BM25 过滤:利用 BM25 算法提取关键信息,去除冗余。
    • 支持用户自定义 Markdown 生成策略。
  • 结构化数据提取

    • LLM 驱动提取:兼容所有主流 LLM(开源和商业),通过自然语言指示提取结构化 JSON。
    • 分块策略:支持主题、正则、句子级分块,提升 LLM 处理效率和准确性。
    • 余弦相似度:基于用户查询语义检索相关内容块。
    • CSS / XPath 提取:使用选择器快速提取重复模式下的结构化数据。
    • Schema 定义:自定义提取模板,输出一致格式。
  • 浏览器集成

    • 支持 Chromium、Firefox、WebKit。
    • Managed Browser:用户可控制已打开的浏览器,降低检测风险。
    • Remote Browser Control:通过 Chrome DevTools Protocol 远程操控。
    • Browser Profiler:创建/管理持久化浏览器配置文件,保存登录状态、cookies、设置。
    • Session Management:跨请求保持浏览器状态,适用于多步骤爬取。
    • Proxy / 代理:支持带认证的代理接入。
    • 动态视口调整:自动适配页面内容,确保完整渲染。
  • 爬取与抓取

    • 执行 JavaScript 并等待异步加载,获取动态渲染后的内容。
    • 支持截图、缓存、元数据提取。
    • 处理 iframe、懒加载、无限滚动、srcset / picture 等现代网页元素。
    • Hooks:在爬取各阶段插入自定义函数(字符串或函数 API),精细控制行为。
    • Link Extraction:提取内部、外部链接及 iframe 内容。
  • 部署与运维

    • Docker 镜像:内置 FastAPI 服务器,支持 JWT 认证,开箱即用。
    • API Gateway:一键部署,安全 Token 认证。
    • CLI 工具crwl):直接使用命令行抓取、深度爬取、LLM 提取。
    • 支持 raw:file:// 协议,无需网络环境即可处理本地或纯 HTML。

亮点 / 与同类相比

  • 零成本、无门槛:无需注册、API Key 或付费,对比 ScrapingBee、Apify 等商业服务,Crawl4AI 大幅降低数据获取成本。
  • 速度优化:基于异步浏览器池、智能缓存和最少跳转策略,实际运行速度优于许多同类工具。新版本引入 prefetch 模式使 URL 发现速度提升 5–10 倍。
  • 全面可控:支持 Session、Proxy、Cookies、User Scripts、Hooks,能适配复杂爬取需求(如登录态、反爬绕过)。
  • 自适应学习:内置“Adaptive Intelligence”,可学习网站页面模式,仅探索相关内容,减少无效请求。
  • 部署灵活:零依赖即可运行(pip install 后执行一次 setup),同时提供 Docker+CLI 云端友好的配置。相比之下,许多爬虫框架需要额外安装无头浏览器或依赖复杂。
  • 社区验证:51,000+ GitHub 星,持续迭代(已有 0.9.1 版本),安全性方面在 0.8.7 和 0.9.0 中修复了 Docker API 的 RCE、SSRF、auth bypass 等严重漏洞,确保生产可用。

适合谁用 / 上手

适用人群

  • 数据工程师与 AI/ML 工程师,需要将网页内容灌入 RAG 系统或训练 pipeline。
  • 开发 AI Agent 或自动化工作流的开发者,需要低成本、可控的网页数据源。
  • 研究人员需要批量爬取学术、新闻、产品数据并清洗为结构化格式。
  • 希望避免商业爬虫 API 高昂费用和速率限制的小型团队或个人。

快速上手

# 安装
pip install -U crawl4ai

# 运行配置(下载浏览器依赖)
crawl4ai-setup

# 验证安装
crawl4ai-doctor

# 使用 Python API
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)

asyncio.run(main())

# 或使用命令行
crwl https://www.nbcnews.com/business -o markdown
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10
crwl https://www.example.com/products -q "Extract all product prices"

更多高级功能(深度爬取、LLM 提取、自定义 Hook、Docker 部署)可参考官方文档 docs.crawl4ai.com。项目同时提供赞助计划,支持社区长期发展。

查看原文 →github.com