Mindket

Crawl4AI 开源网页爬虫

新上架第 2 版 · 更新于
GitHub 热门
星标87k

概览

UncleCode 做的开源网页爬虫和抓取工具,面向大语言模型和 AI 智能体。它在浏览器里加载页面,返回干净的 Markdown,或者按你定义的结构返回 JSON。说明涵盖 Python 库、crwl 命令、Docker 服务器和 MCP。

Crawl4AI 开源网页爬虫 是一款 GitHub 上的开源项目,属于开发类,由 Mindket 上架。可免费获取。当前为第 2 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。

速览

用在
  • Python 环境里,作为你导入的库
  • 终端里,通过 crwl 命令
  • AMD64 或 ARM64 上的 Docker 容器,放在你的电脑或服务器上
  • Claude Code,通过 Docker 服务器的 MCP 端点
先运行
pip install -U crawl4ai
crawl4ai-setup
crawl4ai-doctor

平台

Docker容器
Claude Code编程智能体
Codex编程智能体
Cursor代码编辑器
Windsurf代码编辑器
OpenCode编程智能体

用在哪里里还有 2 个

关于

它是什么

Crawl4AI 是一个开源的网页爬虫和抓取工具,给大语言模型和 AI 智能体用。你给它一个网址,它用无头浏览器加载页面,交回干净的 Markdown,或者按你定义的结构交回 JSON。README 说你可以自己运行它,永久免费。它有三种形态:Python 库、一个叫 crwl 的命令,以及带 REST API 的 Docker 服务器。README 还介绍了 Crawl4AI Cloud,这是一个托管服务,有自己的账号和价格。这个条目讲的是你自己运行的那几部分,只在制作方给出智能体配置命令的地方提到云服务。

  1. 你给它一个网址,或者一段原始 HTML
  2. 无头浏览器加载这个页面
  3. 可选的过滤器去掉菜单、页脚和样板文字
  4. 你拿到 Markdown,或按你定义的 schema 生成的 JSON
  5. 你的 RAG 流程或智能体读取结果

适合谁

要把网页交给模型的开发者。比如 RAG 流程、会读网页的智能体,以及要把页面里的文字和表格变成干净 Markdown 的数据任务。Python 库和 crwl 命令需要 Python 3.10 或更高版本和终端;Docker 服务器只需要 Docker。Docker 服务器适合想让各个应用通过 HTTP 调用同一个爬虫的团队。如果你只想读一个页面、读一次,就不必用它,手动复制文字更快。

谁在用,怎么用
行业谁在用怎么用例子
AI 应用开发做 RAG 或智能体的开发者把网页变成能建索引、能交给模型的 Markdown一位开发者把一个文档站爬成 Markdown,载入 RAG 索引。README 写明它的用途是 RAG、AI 智能体和数据管道。
数据工作分析师和数据工程师用 CSS schema 把页面里重复出现的记录取成 JSON,不用 LLM一位工程师用 schema 描述一个名言块,从一个滚动加载的页面里取出每条名言、作者和标签,和 README 的例子一样。
价格和产品调研分析师让 LLM 把不规则的页面读成他们定义的字段一位分析师从定价页取出每个模型的名称和输入、输出费用,和 README 的 LLM 例子一样。
智能体用户用 Claude Code 或其他智能体的人把爬虫作为 MCP 工具交给智能体智能体调用你自己服务器上的 md 或 crawl 工具来读一个页面。

用在哪里

Crawl4AI 放在哪里就在哪里运行,制作方的页面列出了这些途径。

  • Python 环境里,作为你导入的库
  • 终端里,通过 crwl 命令
  • AMD64 或 ARM64 上的 Docker 容器,放在你的电脑或服务器上
  • Claude Code,通过 Docker 服务器的 MCP 端点
  • Crawl4AI Cloud 托管服务,通过 MCP 在 Claude Code、Codex、Cursor、Windsurf、OpenCode、OpenClaw、Claude Desktop 和 ChatGPT 里使用

README 说它能驱动 Chromium、Firefox 和 WebKit。

如何设置

点“获取”会把一个装有 Mindket 安装说明的 zip 压缩包存进你的下载文件夹,里面有库、命令行、Docker 服务器、示例脚本和每个智能体各一份文件。主要途径是 pip。

先准备好这些
需要说明
PythonPython 3.10 或更高版本,这是这个包在 PyPI 页面上要求的
浏览器crawl4ai-setup 会替你装一个,只需一次
Docker只有服务器需要:Docker 20.10.0 或更高版本、compose v2.24 或更高版本,并给容器至少 4 GB 内存
模型只有 LLM 功能需要:一个模型服务商的密钥,或者像 ollama/llama3.3 这样的本地模型。普通爬取和 CSS 提取都不需要
扩展包可选。安装页面提醒,torch、transformer 和 all 这几个扩展包会带来大模型,占用更多磁盘和内存
  1. 从 PyPI 安装这个包。
  2. 运行 crawl4ai-setup。它会装一次浏览器。
  3. 运行 crawl4ai-doctor 检查安装。
  4. 把 README 的第一个脚本存成文件。再用 python 运行它。
pip install -U crawl4ai
crawl4ai-setup
crawl4ai-doctor

如果浏览器装不上,README 给了一行手动安装的命令:

python -m playwright install --with-deps chromium

README 的第一个脚本会把一个页面打印成 Markdown。

import asyncio
from crawl4ai import AsyncWebCrawler

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(url="https://news.ycombinator.com")
        print(result.markdown)

asyncio.run(main())

如何使用

Crawl4AI 有三种运行方式。

三种运行方式
方式怎么启动你得到什么
Python 库在脚本里用 AsyncWebCrawler所有选项都能用,结果是一个对象,里面有 Markdown、提取出的内容、链接和媒体
crwl 命令crwl https://news.ycombinator.com -o markdown页面以 Markdown、JSON 或过滤后的 Markdown 显示在终端里
Docker 服务器docker run,然后向 /md 或 /crawl 发 POST 请求一个 REST API,/dashboard 上的控制面板和 /playground 上的试用页

crwl 命令用 -o 选择输出格式。深度爬取也用这个命令。

crwl https://news.ycombinator.com -o markdown
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

第二行按广度优先爬取制作方自己的文档,爬到 10 页就停。

Docker 服务器需要一个令牌。没有令牌时,它只在容器内部应答,所以即使 Docker 显示容器状态健康,你映射出来的端口也会重置连接。先生成令牌,再启动容器,等大约 10 秒。

export CRAWL4AI_API_TOKEN="$(openssl rand -hex 32)"
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g \
  -e CRAWL4AI_API_TOKEN="$CRAWL4AI_API_TOKEN" \
  unclecode/crawl4ai:latest

然后发送 README 里的测试请求。

curl -s http://localhost:11235/md \
  -H "Authorization: Bearer $CRAWL4AI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://news.ycombinator.com"}' | jq -r .markdown

在 Python 里,设置放在两个类中。BrowserConfig 管浏览器。CrawlerRunConfig 管每一次爬取:缓存、提取、超时和钩子。快速入门说默认的缓存模式是绕过缓存,所以你拿到的是最新内容。

示例

你想把 quotes.toscrape.com/scroll 上的每条名言取成 JSON。这个页面要往下滚才会加载更多名言,所以 README 的脚本把 scan_full_page 设为 True,并用一个 CSS schema 描述一个名言块。

schema = {
    "name": "Quotes",
    "baseSelector": "div.quote",
    "fields": [
        {"name": "text", "selector": "span.text", "type": "text"},
        {"name": "author", "selector": "small.author", "type": "text"},
        {"name": "tags", "selector": "a.tag", "type": "list", "fields": [{"name": "tag", "type": "text"}]},
    ],
}

脚本把 JsonCssExtractionStrategy(schema) 放进运行配置,然后打印提取到多少条名言,再把第一条以 JSON 打印出来。整个过程不调用模型。README 的 LLM 例子改用 LLMExtractionStrategy、一个模型名(openai/gpt-4o-mini)和一个 Pydantic schema,在定价页上提取,这时页面文字会发给那个模型。

新手与专家

新手:爬虫负责访问网页,抓取器负责从网页里读出数据。原始 HTML 里满是菜单、脚本和标签,模型读起来很吃力。Markdown 用纯文本保留标题、列表、表格和代码。RAG 指的是模型根据你交给它的段落来回答。schema 是一份简短的说明,写清你要从页面里取哪些字段,比如标题、链接和价格。在动任何设置之前,先用第一个脚本试一个页面,或者用 crwl 加一个网址试试。

专家:Markdown 结果有原始版和 fit 版两种。fit 版会经过一个内容过滤器,README 列出了 PruningContentFilterLXML、针对查询的 BM25ContentFilter 和 LLMContentFilter。提取既有不用 LLM 的策略(JsonCssExtractionStrategy、JsonXPathExtractionStrategy 和 RegexExtractionStrategy),也有 LLMExtractionStrategy,后者可以用 LiteLLM 支持的任何服务商。

调用一次 generate_schema,让 LLM 写出一份可复用的 CSS schema,之后的运行就不再需要模型。深度爬取有广度优先、深度优先和最佳优先三种策略,Deep Crawling 页面把最佳优先标为推荐。resume_state 能让一次很长的爬取在崩溃后接着跑。AdaptiveCrawler 学到足够回答你问题的内容就会停下,arun_many 则用一个按内存自动调节的调度器同时跑很多 URL。

从 0.9.0 起,Docker 服务器默认就是安全的。除了 GET /health,每个端点都需要 bearer 令牌。截图或 PDF 会直接随响应返回,同时附带一个 artifact id;存下的文件要带着令牌从 /artifacts/<artifact_id> 下载,保存时间有限。钩子默认关闭,设置 CRAWL4AI_HOOKS_ENABLED=true 才会开启,而且它们是声明式的 JSON 动作,不是 Python 代码。

服务器的 MCP 端点有两个:走 Server-Sent Events 的 /mcp/sse,和走 WebSocket 的 /mcp/ws。它们提供的工具有 md、html、screenshot、pdf、execute_js、crawl 和 ask。

注意事项

Crawl4AI 在你自己的电脑上运行,有几处细节最好先读一下。

  • 许可证:Apache-2.0,GitHub 标的也是它。LICENSE 文件末尾加了一条署名要求,所以分发、出版和公开使用都必须带上制作方的署名行。README 还要求,使用时必须带上两种署名之一:一个徽章或一行文字
  • 云服务:Crawl4AI Cloud 是另一个托管服务,有自己的账号、密钥和价格。制作方的页面说,你的云密钥能调用计费接口,其中包括充值,所以要想清楚是否让智能体拿着它
  • 你的数据:一次爬取会连接你给它的网址。LLM 提取会把页面文字发给你选的模型,除非那个模型就在你的电脑上运行。README 和 Mindket 说明所依据的文档页面都没有提到使用数据
  • 爬取规则:Deep Crawling 页面说要遵守 robots.txt,并注明这项默认是关闭的。undetected browser 页面说要遵守每个网站的服务条款,并设置延时。大规模爬取之前,先看看网站的规定
  • 旧页面:安装页面的标题是 2023 Edition,里面的 Docker 标签也是旧的。README 和 Self-Hosting Guide 更新,所以说明以它们为准
  • MCP 和令牌:指南里给你自己服务器的 MCP 命令没有带令牌,也没说这些端点怎么接收令牌。添加之后检查一下连接
  • 卸载:文档没有给出卸载步骤。Mindket 的说明为这个包补上了 pip uninstall crawl4ai,指南则给出 docker stop crawl4ai 和 docker rm crawl4ai 来移除容器

README 和文件

README

Crawl4AI:安装说明

这个工具包里只有安装说明,由 Mindket 编写。Crawl4AI 本身要从制作方的仓库和 PyPI 安装:https://github.com/unclecode/crawl4ai

这些说明不是 Crawl4AI 项目或它的制作方写的,也没有得到他们的认可。README 开头写的是“Crawl4AI turns any website into clean, LLM-ready Markdown for RAG, AI agents and data pipelines.”,意思是:Crawl4AI 能把任何网站变成干净、可以直接交给 LLM 的 Markdown,用于 RAG、AI 智能体和数据管道。README 在 https://github.com/unclecode/crawl4ai/blob/main/README.md ,文档在 https://docs.crawl4ai.com

许可证:Apache-2.0。GitHub 标的就是它,LICENSE 文件(https://github.com/unclecode/crawl4ai/blob/main/LICENSE )是 Apache License 2.0 的文本,末尾加了一条署名要求。见下面的“署名”。

README 还介绍了同一制作方的托管服务 Crawl4AI Cloud。它是另一个产品,有自己的账号、密钥和价格。这些说明讲的是开源的库、命令行和 Docker 服务器,只在制作方的页面给出智能体配置命令的地方提到云服务。

会安装什么

事先需要准备

  • Python 3.10 或更高版本。这是这个包在 PyPI 页面上的 requires_python 值:https://pypi.org/project/crawl4ai/
  • Docker 服务器需要:Docker 20.10.0 或更高版本,带 docker compose v2.24 或更高版本,并给容器至少 4 GB 内存。来源见 https://docs.crawl4ai.com/core/self-hosting/
  • LLM 提取需要一个模型:一个模型服务商的密钥,或者像 ollama/llama3.3 这样的本地模型。普通爬取和 CSS 提取都不需要。见 setup/recipes.md。

主安装命令

pip install -U crawl4ai
crawl4ai-setup

来源见 https://github.com/unclecode/crawl4ai/blob/main/README.md

各平台的说明

  • setup/python-library.md:pip、浏览器设置、doctor 检查、扩展包和开发安装
  • setup/command-line.md:crwl 命令
  • setup/docker-server.md:自己托管的服务器、它的令牌和控制面板
  • setup/recipes.md:Markdown、结构化数据、深度爬取和批量 URL,抄自文档
  • setup/claude-code.md:给你自己的服务器和给云服务的 MCP 命令
  • setup/codex.md:云服务给 Codex 的 MCP 配置块
  • setup/cursor.md:云服务给 Cursor 和 Windsurf 的 MCP 配置块
  • setup/other-agents.md:OpenCode、OpenClaw、Claude Desktop、ChatGPT 和制作方的技能包

更新或卸载

安装页面给出的稳定版命令是:

pip install -U crawl4ai

安装页面补充说,pip install crawl4ai --pre 会安装最新的预发布版,pip install crawl4ai== 后面跟上版本号则安装一个确切的版本,并说生产环境要用稳定版。来源见 https://docs.crawl4ai.com/core/installation/

README 和文档都没有给出卸载步骤。下面两句是 Mindket 的说明,不是制作方的。pip uninstall crawl4ai 会移除这个包。如果你专门为它建了一个虚拟环境,删掉那个文件夹,里面的东西就都没了。Docker 服务器的话,自托管指南给出的是 docker stop crawl4ai && docker rm crawl4ai。

使用数据和对外连接

README 和这些说明所依据的文档页面都没有提到使用数据。一次爬取会连接你给它的网址。LLM 提取会把页面文字发给你设定的模型。使用云服务时,你的请求会带着密钥发到 api.crawl4ai.com。

署名

LICENSE 文件末尾要求,这个软件或基于它的作品,每一次分发、出版或公开使用,都要带上这一行:

"This product includes software developed by UncleCode (https://x.com/unclecode) as part of the Crawl4AI project (https://github.com/unclecode/crawl4ai).";

意思是:本产品包含 UncleCode 作为 Crawl4AI 项目的一部分开发的软件。

README 的“License & Attribution”一节要求,使用 Crawl4AI 时必须选用以下两种署名方式之一:一个“Powered by Crawl4AI”徽章(推荐),或者在你的文档里写上这一行:

This project uses Crawl4AI (https://github.com/unclecode/crawl4ai) for web data extraction.

来源见 https://github.com/unclecode/crawl4ai/blob/main/LICENSE 和 https://github.com/unclecode/crawl4ai/blob/main/README.md

负责任地爬取

深度爬取页面说要做一个好的网络公民,遵守 robots.txt,并注明这项默认是关闭的。undetected browser 页面的结尾写着“Always respect robots.txt and website terms of service”和“Use appropriate delays to avoid overwhelming servers”,意思是始终遵守 robots.txt 和网站的服务条款,并设置合适的延时,免得把服务器压垮。来源见 https://docs.crawl4ai.com/core/deep-crawling/ 和 https://docs.crawl4ai.com/advanced/undetected-browser/

来源

文件
README.md  6 KB
setup/claude-code.md  3 KB
setup/codex.md  1 KB
setup/command-line.md  4 KB
setup/cursor.md  1 KB
setup/docker-server.md  5 KB
setup/other-agents.md  3 KB
setup/python-library.md  4 KB
setup/recipes.md  11 KB

9 个文件,共 39 KB,以 zip 压缩包下载。

更新内容

  • 第 2 版 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • 第 1 版 · 2026-11-03

同类产品对比

同一分类里与本产品共有主题最多的已上架 GitHub 项目。

产品星标活跃度语言许可证最近更新
Crawl4AI 开源网页爬虫 本页87,016——Apache-2.0—
Scrapling共有 crawler · data-extraction · playwright99,911活跃PythonBSD-3-Clause
Awesome Self-Hosted AI共有 rag · open-source · llm113活跃JavaScriptCC0-1.0
闲鱼智能监控系统共有 playwright · open-source · ai18,425更新较少PythonMIT
Awesome LLM Apps 智能体示例共有 rag · python144,222——Apache-2.0—
Agno共有 python · ai · ai-agents43,097活跃PythonApache-2.0
数据为 Mindket 在 2026-11-06 至 2026-11-09 期间读取的数值。 活跃度依据各项目在 GitHub 上的最近更新:30 天内为活跃,180 天内为更新较少,超过 180 天为久未更新。

评价

还没有评分

写评价

还没有评价。

大家怎么说

Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。

rmasonCrawl4AI is an open-source, LLM-friendly web crawler and scraper7 分 · 2 条回复@toolhunt.bsky.socialНужен чистый Markdown с любого сайта для твоих LLM и AI-агентов? Бери open-source краулер crawl4ai: 84k+ звезд, Playwright и ноль боли с парсингом. https://github.com/unclecode/crawl4ai #OpenSource #AI #Python3 赞@mr_mofun2027年你的工作可能不安全,先把这7个GitHub仓库学会。 ⚒️它们能帮你用AI而不是被AI取代: 1. GPT Researcher AI研究代理,能搜索网页、深入调查复杂话题,并写出带引用的详细报告。 https://t.co/vIUMOWTKak 2. OpenHands AI软件工程师,可以写代码、修bug、处理开发任务。 https://t.co/HCij9h3Mvi 3. Activepieces 跨应用自动化重复工作,让AI代理执行真实工作流。 https://t.co/fky0hNP85c 4. CrewAI 组建AI代理团队,分工协作,共同完成目标。…r/BestGitHubRepos6 GitHub repos to turn any website into clean, structured dataProbeCraftCrawl4AI: Open-Source Web Crawler for Seamless AI Data Scraping6 分Digital BrainCrawl4AI is an open-source web crawler created by unclecode, designed to prepare internet content in a format ready for language models.2 赞@AiBoosting_net5/6: 4. n8n-io/n8n Workflow automation with AI built in. Visual editor or code, self-hosted or cloud. Fair-code license. 5. unclecode/crawl4ai Turns websites into clean, LLM-ready Markdown. Apache-2.0. Use them for: research notes and repeat tasks.hbcondo714crawl4ai: The Adaptive Intelligence Update4 分EUVD Bot🚨 EUVD-2026-113186 📊 8.7/10 🏢 unclecode 📝 Crawl4AI before 0.9.5 contains a denial of service vulnerability in the Docker API server where _clamp_untrusted() fails to cap the delay_before_retur... 🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-113186 #cybersecurity #infosec #cve #euvd@cyrilXBT$82dhruv_ahujaAsk HN: What do you use (AI based) web crawlers for?I am curious, what are people and organisations building with web crawlers, especially since now all of them seem to have LLM support for further refining the output from crawled pages. Open source projects like crawl4ai[1] have a crazy amount of stars (~59k). This got me curious.…3 分EUVD Bot🚨 EUVD-2026-113187 📊 7.7/10 🏢 unclecode 📝 Crawl4AI from 0.9.0 before 0.9.5 fails to filter the CosineStrategy model_name field in untrusted Docker API request bodies, allowing authenticated cl... 🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-113187 #cybersecurity #infosec #cve #euvd

搜索日期

Mindket 的更多商品

查看 Mindket 的全部商品

anaksor-ocr

Sokheng · 工具包

这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。

新上架

Qwen2.5-7B-Instruct-GGUF

Qwen · 工具包

Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。

新上架

ACE-Step 1.5 XL SFT

ACE-Step · 工具包

用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。

新上架

Scrapling

D4Vinci · 工具包

这是一个集快速 HTTP 请求、浏览器自动化与数据解析于一体的 Python 网络爬虫框架。它包含一个 MCP 服务器,能让 AI 智能体完成数据收集、JavaScript 渲染及并发爬取任务管理。

新上架99.9k

TrendRadar 热点舆情监控

sansan0 · 工具包

一个开源的新闻与舆情监控工具。它读取国内各平台的热搜榜和你订阅的 RSS,留下符合关键词或 AI 评分的内容,再推送到飞书、Telegram、邮件等渠道。它的 MCP 服务器让 Cursor 等客户端查询已保存的新闻。

新上架63.5k

Awesome Self-Hosted AI

glincker · 工具包

列出 309 个可以在你自己的硬件或服务器上运行的开源 AI 项目,按 LLM 运行时、智能体、RAG 和语音等板块分组,每周做一次健康检查。

新上架113