SuperAPI AI 工具集

markcrawl

MarkCrawl 是一个面向 RAG 与 AI 数据摄入的 Python 网页爬虫。它可以把任意网页或整个网站抓取并转换为干净的 Markdown 文件,同时生成结构化的 JSONL 索引,每页附带带访问日期的引用。核心爬取功能不需要 API 密钥,本地运行,无遥测。可选的 LLM 结构化提取、Supabase 向量上传、MCP 服务器和 LangChain 工具等需单独安装。定位为聚焦范围(文档、博客、产品站)的 RAG 数据摄入工具。

访问官网

工具介绍

MarkCrawl 是一个用 Python 编写的网页爬取与结构化引擎,目标是把网页内容转化为适合 LLM 流水线使用的干净 Markdown。它可以在一条命令内抓取单个页面或爬取整个网站,剥离导航、脚本、样板内容,输出 Markdown 文件并附带结构化的 JSONL 索引,每页都包含带访问日期的引用。核心爬取与嵌入功能无需 API 密钥。

主要能力

  • 抓取单个页面或整站,输出干净的 Markdown 和 pages.jsonl 索引。
  • 内置本地嵌入器(自 v0.10.1 起默认),安装即带 torch + transformers + sentence-transformers,嵌入无需 API 密钥,可用参数切回 OpenAI。
  • 遵循 robots.txt,支持 sitemap 优先爬取、并发抓取与代理、断点续爬与自动恢复。
  • URL 过滤:--exclude-path、--include-path、--dry-run 预览;v0.11.1 默认过滤聚合器页面(如 mdBook /print.html、Hugo /_print/)。
  • 提取后端可选默认 BS4、trafilatura、ensemble、ReaderLM-v2;可保留图片 alt 文本。
  • 二进制下载:v0.11.0 起支持 download_types=["pdf","docx"],可预取过滤回调;另支持下载图片。
  • 截图:全页或裁剪,PNG 或 JPEG。
  • 文本分块(可配置重叠与语义分块)、跨爬取去重(--cross-dedup)、按预测内容产出排序链接(--prioritize-links)、模板化 URL 簇智能采样(--smart-sample)。
  • JavaScript 渲染:安装 markcrawl[js] 后使用 --render-js 处理 React/Vue/Angular 初始渲染内容。
  • HTTP 重试:基于 tenacity 的全抖动指数退避(2 秒到 30 秒,5 次尝试),429 时遵循 Retry-After 头。

可选附加组件

  • LLM 结构化提取:用 LLM 从每页抽取指定字段,支持 OpenAI、Anthropic (Claude)、Google Gemini、xAI (Grok),可通过 --provider 选择;支持跨多个站点自动发现字段。
  • Supabase 向量检索:分块、生成嵌入并上传到 Supabase pgvector,需要 SUPABASE_URL、SUPABASE_KEY 和 OPENAI_API_KEY。
  • 智能体集成:提供 MCP 服务器、LangChain 工具、OpenClaw 技能;工具包括 crawl_site、list_pages、read_page、search_pages、extract_data。另有 docs/LLM_PROMPT.md 系统提示,可让 LLM 自动生成正确的 MarkCrawl 命令。
  • 提供 Python API(result.pages)和页面类型提取、内容区域启发式。

使用方式 安装或升级:pip install markcrawl。如需 Playwright,安装后还要运行 playwright install chromium。精简安装(跳过本地嵌入器依赖栈)需设置 OPENAI_API_KEY 并传入 embedding_model="text-embedding-3-small"。快速开始后可获得含 pages.jsonl 的 ./demo 目录,每行包含页面各字段。常用模式包括单页抓取、整站爬取、URL 过滤、提取后端、二进制下载、截图以及端到端用例(竞品分析、RAG 聊天机器人、API 文档转代码生成)。完整命令见 docs/RECIPES.md。核心爬虫免费;提取与上传两个可选功能有 API 成本。

适用场景 适合聚焦范围、几百到低几千页的 RAG 数据摄入,例如文档站、博客、产品站,追求 LLM 可用 Markdown 且垃圾内容少、嵌入成本低。基准测试显示其导航污染最低(53 词,其他 500+ 词),速度 2.7 页/秒,总块数 27,193(比最多者少 2.2 倍)。

限制(官方明确列出)

  • 不支持登录/鉴权站点,无 cookie 或会话支持。
  • 无对抗机器人检测(Cloudflare、Akamai)的反规避能力。
  • 不适合数百万页面规模,设计面向几百到低几千页,超大规模建议用 Scrapy。
  • 仅支持 HTML,PDF 内容支持在路线图中。
  • JavaScript SPA 需要加装 markcrawl[js] 并使用 --render-js。
  • 无限滚动页面:--render-js 只渲染首次加载,不滚动,只能拿到首屏内容(例如 82 个 YouTube 视频中约 28 个);完整列表需结合平台 API 或 RSS。

基准表现(官方披露,截至 bench v1.4,2026-05-11) 独立 llm-crawler-benchmarks v1.4 覆盖 7 款爬虫。MarkCrawl 成本排名第 1(10 万页规模约 $4,505/年),但答案质量 3.77/5 排第 7,检索准确率 MRR 0.341(领先者 0.76)。v0.11.1 过滤 /print.html 与 /_print/ 后,预计文档密集站点 MRR 提升 +0.02 到 +0.04。基准自身也在改进,v1.5 将改为从各站 sitemap 独立取题。以上为单次试验数据,多试验测量在 v1.5.1 路线图中。

其他 本地运行,无遥测、无分析、不发送数据;许可证为 MIT;有 647 个自动化测试、GitHub Actions CI(Python 3.10-3.13)和 ruff 检查。最新版本 v0.11.1(2026-05-12)。