SuperAPI AI 工具集

WebReaper

WebReaper 是一个 AI 原生网页抓取工具,以单一二进制文件分发,并内置 Claude Code 技能,MIT 许可,定位为 Firecrawl 的本地替代方案。它支持将网页内容转换为干净的 Markdown 或结构化字段,可自动检测反爬机制并按页升级到真实浏览器,避免挑战页污染数据。它提供 CLI、库、MCP 服务器等多种使用方式,支持抓取、爬取、站点地图、结构化提取和自主智能体,适用于构建 LLM 上下文、监控页面变化、生成数据集等场景。

访问官网

工具介绍

用途

WebReaper 是一个 AI 原生网页抓取工具,主要将网页内容转换为适合大语言模型(LLM)使用的干净 Markdown 或结构化数据,并可作为 Firecrawl 的本地、MIT 许可替代方案。它以单一二进制文件分发,同时提供库和 MCP 服务器接口。

主要能力

  • 输出 Markdown:每页输出包含 {title, markdown} 的结果,可直接送入后续 LLM 提示。
  • 结构化字段提取:支持用 schema 提取字段,例如通过 new("字段名", "CSS选择器") 定义叶子节点,支持嵌套对象、数组(IsList = true)以及读取 HTML 属性(Attr = "href")。
  • 自动反爬升级:普通抓取或爬取会先走快速 HTTP 请求,仅在检测到封锁时自动升级到真实浏览器;首次确认封锁后,同一主机会记录“地板”层级,后续页面从可用层级开始,无需重复尝试。仍被封锁的页面会被丢弃,不会写入输出,且运行以非零状态退出。
  • stealth 控制:--stealth 从 stealth 后端开始;--auto-stealth(或 WEBREAPER_AUTO_STEALTH=1)支持无人值守启用;--no-auto-stealth 将升级上限限制为普通浏览器。约 220 MB 的 stealth 后端仅在显式启用时下载。
  • Claude Code 技能:webreaper init 会向 .claude/skills/webreaper/ 写入 SKILL.md,Claude Code 在下一会话加载后可将“给我 X 的 markdown”“Y 上有哪些博客文章”“抓取前 5 篇文章”等意图自动路由到 webreaper。
  • MCP 服务器:提供两个 MCP 服务器,暴露 scrape、map、extract、extract_with_prompt、extract_inferred、crawl 等工具。WebReaper.Mcp 使用 stdio,适合 Cursor、Claude Desktop、Copilot Studio 等本地客户端;WebReaper.Mcp.AspNetCore 使用 Streamable HTTP,适合 n8n 等仅支持 URL 的客户端。
  • AI 安全网:三种可组合模式,仅在确定性提取失败时调用 LLM;稳定页面零 LLM 调用,破损页面按(页面、字段)调用并缓存,schema 推断每个站点一次调用并缓存。WebReaper.AI 基于 Microsoft.Extensions.AI,可使用任意 IChatClient。
  • 自主智能体:AgentEngine 以 decide → persist → execute 循环运行,基于封闭枚举 AgentDecision(Extract | Follow | Act | Stop)逐步决策,支持跨进程重启的持久化恢复。
  • 语义页面动作:PageAction.SemanticAct(intent) 接受自然语言意图,通过注册的 IActionResolver(默认 LLM 支持)解析一次,并按意图字符串缓存;同一意图的后续页面直接派发缓存动作,无 LLM 调用。
  • 浏览器与动态页面:对 JS 渲染页面可用 CrawlWithBrowser,并通过 WebReaper.Playwright 或 WebReaper.Cdp 注册浏览器传输。
  • 持久化与恢复:支持文件后端(零依赖、核心内置)和 SQLite 后端(需 WebReaper.Sqlite)持久化进度,可跨重启恢复;支持 dataCleanupOnStart 在开始时清空存储。
  • 分布式与无服务器:可将调度器、配置存储、链接追踪器切换为 Redis 或 Azure Service Bus,多个 worker 或 serverless 函数共享同一爬取任务。
  • 自定义扩展:提供 fluently builder 和可替换 seam,支持自定义 sink,可接入 Redis、Cosmos DB 等。

使用方式

  • 安装:macOS / Linux 可通过 Homebrew;任意 POSIX shell 可使用 install.sh;Windows 二进制位于 GitHub Releases 页面,winget 和 Scoop 在 v10.1 路线图中。更新方式:brew upgrade webreaper;重新运行 install.sh 并追加 --upgrade( | sh -s -- --upgrade );或 dotnet add package WebReaper(库)。
  • CLI 使用:基本抓取示例为 webreaper scrape <url>,支持 --stealth、--auto-stealth 等参数。结构化字段可用 Extract(schema) 替换 AsMarkdown();JS 渲染页面用 CrawlWithBrowser 加传输 satellite。
  • 在智能体 harness 中使用:单一二进制可在任何可启动 shell 的智能体中使用,如 LangChain ShellTool、OpenAI Assistants code-interpreter、GitHub Actions、内部脚本。
  • 在自有应用中嵌入:dotnet add package WebReaper,通过公开注册 seam 接入自定义存储。
  • MCP HTTP 服务:docker run -p 8080:8080 -e WEBREAPER_MCP_TOKEN=your-secret ghcr.io/alex-on-ai/webreaper-mcp-http:latest,然后将 n8n 的 MCP Client 节点指向该 URL 并带 bearer token。
  • 日志提示:存在新版本时,scrape / crawl / map 会在 stderr 打印一行升级提示(仅交互式终端,管道或 CI 中不打印);可用 WEBREAPER_NO_UPDATE_CHECK=1 禁用。

适用场景

  • 为博客或文档站点构建 LLM 上下文:webreaper map 加 webreaper scrape 逐 URL 处理,输出到提示或向量数据库。
  • 监控竞品定价或状态页面变化:用 cron 或 worker 定时运行 CLI,记录到 MongoDB 或 SQLite,结合 .WithChangeTracking() 仅在差异时触发 sink。
  • 运行自主研究智能体:LlmAgent.RunAsync(url, goal, chatClient) 决定跟随哪些链接直到目标达成,支持跨重启恢复。
  • 抓取 Cloudflare 保护的目录:普通抓取自动从 HTTP 升级到浏览器,加 --stealth 或 --auto-stealth 可升级到 stealth 后端。
  • 从半结构化页面生成干净数据集:[ScrapeSchema] POCO 加源生成器,无反射,AOT 编译为原生二进制。
  • 在自有应用中嵌入抓取能力。

限制

  • Windows 的 winget 和 Scoop 支持仍在 v10.1 路线图中,暂未提供。
  • 约 220 MB 的 stealth 后端仅在显式启用时下载。
  • WebReaper.Cli 不是 NuGet 包,不能通过 dotnet tool install 安装,需通过 Homebrew、install.sh 或从源码构建。
  • 需要登录的站点需自行调用 SetCookies 完成登录。
  • 输出结果在某些场景下需要使用线程安全集合(如 ConcurrentBag)收集,因为 Crawl 驱动会并发向 sink 扇出。

许可

WebReaper 采用 MIT 许可。所有 NuGet 包及 WebReaper.Cli 二进制均按相同条款分发,可用于商业用途、嵌入专有软件、fork、修改和再分发,只需保留版权声明。在 10.0.0 之前为 GPL-3.0-or-later,重新许可后更宽松,现有用户不受影响。