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

UncleCode 做的开源网页爬虫和抓取工具,面向大语言模型和 AI 智能体。它在浏览器里加载页面,返回干净的 Markdown,或者按你定义的结构返回 JSON。说明涵盖 Python 库、crwl 命令、Docker 服务器和 MCP。
Crawl4AI 开源网页爬虫 是一款 GitHub 上的开源项目,属于开发类,由 Mindket 上架。可免费获取。当前为第 2 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。
pip install -U crawl4ai crawl4ai-setup crawl4ai-doctor
用在哪里里还有 2 个
Crawl4AI 是一个开源的网页爬虫和抓取工具,给大语言模型和 AI 智能体用。你给它一个网址,它用无头浏览器加载页面,交回干净的 Markdown,或者按你定义的结构交回 JSON。README 说你可以自己运行它,永久免费。它有三种形态:Python 库、一个叫 crwl 的命令,以及带 REST API 的 Docker 服务器。README 还介绍了 Crawl4AI Cloud,这是一个托管服务,有自己的账号和价格。这个条目讲的是你自己运行的那几部分,只在制作方给出智能体配置命令的地方提到云服务。
要把网页交给模型的开发者。比如 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 放在哪里就在哪里运行,制作方的页面列出了这些途径。
README 说它能驱动 Chromium、Firefox 和 WebKit。
点“获取”会把一个装有 Mindket 安装说明的 zip 压缩包存进你的下载文件夹,里面有库、命令行、Docker 服务器、示例脚本和每个智能体各一份文件。主要途径是 pip。
| 需要 | 说明 |
|---|---|
| Python | Python 3.10 或更高版本,这是这个包在 PyPI 页面上要求的 |
| 浏览器 | crawl4ai-setup 会替你装一个,只需一次 |
| Docker | 只有服务器需要:Docker 20.10.0 或更高版本、compose v2.24 或更高版本,并给容器至少 4 GB 内存 |
| 模型 | 只有 LLM 功能需要:一个模型服务商的密钥,或者像 ollama/llama3.3 这样的本地模型。普通爬取和 CSS 提取都不需要 |
| 扩展包 | 可选。安装页面提醒,torch、transformer 和 all 这几个扩展包会带来大模型,占用更多磁盘和内存 |
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 在你自己的电脑上运行,有几处细节最好先读一下。
这个工具包里只有安装说明,由 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 服务器,只在制作方的页面给出智能体配置命令的地方提到云服务。
crawl4ai,来自 PyPI 的 Python 包。它提供 AsyncWebCrawler 类,以及 crwl、crawl4ai-setup 和 crawl4ai-doctor 三个命令。来源见 https://github.com/unclecode/crawl4ai/blob/main/README.md 、https://docs.crawl4ai.com/core/installation/ 和 https://docs.crawl4ai.com/core/cli/crawl4ai-setup 安装一次。来源见 https://github.com/unclecode/crawl4ai/blob/main/README.mdcrawl4ai[torch]、crawl4ai[transformer] 和 crawl4ai[all],它们会带来体积很大的依赖。来源见 https://docs.crawl4ai.com/core/installation/unclecode/crawl4ai,用于自己托管的服务器。来源见 https://docs.crawl4ai.com/core/self-hosting/requires_python 值:https://pypi.org/project/crawl4ai/ollama/llama3.3 这样的本地模型。普通爬取和 CSS 提取都不需要。见 setup/recipes.md。pip install -U crawl4ai
crawl4ai-setup
来源见 https://github.com/unclecode/crawl4ai/blob/main/README.md
crwl 命令安装页面给出的稳定版命令是:
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
Updated by Mindket to the current version of this kit.
同一分类里与本产品共有主题最多的已上架 GitHub 项目。
| 产品 | 星标 | 活跃度 | 语言 | 许可证 | 最近更新 |
|---|---|---|---|---|---|
| Crawl4AI 开源网页爬虫 本页 | 87,016 | — | — | Apache-2.0 | — |
| Scrapling共有 crawler · data-extraction · playwright | 99,911 | 活跃 | Python | BSD-3-Clause | |
| Awesome Self-Hosted AI共有 rag · open-source · llm | 113 | 活跃 | JavaScript | CC0-1.0 | |
| 闲鱼智能监控系统共有 playwright · open-source · ai | 18,425 | 更新较少 | Python | MIT | |
| Awesome LLM Apps 智能体示例共有 rag · python | 144,222 | — | — | Apache-2.0 | — |
| Agno共有 python · ai · ai-agents | 43,097 | 活跃 | Python | Apache-2.0 |
Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
Qwen · 工具包
Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。
ACE-Step · 工具包
用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。
D4Vinci · 工具包
这是一个集快速 HTTP 请求、浏览器自动化与数据解析于一体的 Python 网络爬虫框架。它包含一个 MCP 服务器,能让 AI 智能体完成数据收集、JavaScript 渲染及并发爬取任务管理。
sansan0 · 工具包
一个开源的新闻与舆情监控工具。它读取国内各平台的热搜榜和你订阅的 RSS,留下符合关键词或 AI 评分的内容,再推送到飞书、Telegram、邮件等渠道。它的 MCP 服务器让 Cursor 等客户端查询已保存的新闻。
glincker · 工具包
列出 309 个可以在你自己的硬件或服务器上运行的开源 AI 项目,按 LLM 运行时、智能体、RAG 和语音等板块分组,每周做一次健康检查。