diff --git a/README_zh-CN.md b/README_zh-CN.md new file mode 100644 index 0000000..3529439 --- /dev/null +++ b/README_zh-CN.md @@ -0,0 +1,507 @@ +

English | 简体中文

+ +

+ + webclaw + +

+ +

webclaw

+ +

+ 将任意网页转化为干净的 Markdown、JSON 与 LLM 就绪的上下文。
+ 面向 AI 智能体与 RAG 流水线的 CLI、MCP 服务器、REST API 与多语言 SDK。 +

+ +

+ Stars + Version + License + npm installs +

+ +

+ Discord + X / Twitter + Hosted webclaw + Docs +

+ +

+ webclaw 从网页中提取干净的 Markdown +

+ +--- + +大多数网页抓取工具,只会给你的智能体两种糟糕的结果之一: + +- 被拦截的页面、登录墙,或空壳应用(app shell) +- 塞满导航栏、脚本、样式、广告和重复模板的原始 HTML + +[webclaw.io](https://webclaw.io) 是 webclaw 的托管式网页提取 API。本仓库包含开源的 CLI、MCP 服务器、提取引擎,以及可自托管的服务端。 + +webclaw 用 Rust 编写,把一个 URL 变成你的工具真正用得上的干净内容——它是一个**开源、可自托管的 [Firecrawl](https://webclaw.io) 替代方案**。 + +```bash +webclaw https://example.com --format markdown +``` + +```md +# Example Domain + +This domain is for use in illustrative examples in documents. + +You may use this domain in literature without prior coordination or asking for permission. +``` + +在终端里直接用,通过 MCP 接入 Claude / Cursor,从你的应用调用托管 API,或者自托管这套开源服务端——任你选择。 + +--- + +## 安装 + +### 智能体一键配置 + +把 webclaw 接入 Claude Code、Claude Desktop、Cursor、Windsurf、OpenCode、Codex CLI 以及其他兼容 MCP 的工具,最快的方式是: + +```bash +npx create-webclaw +``` + +安装器会自动检测已支持的客户端,并为你写好 MCP 服务器的配置。 + +### Homebrew + +```bash +brew tap 0xMassi/webclaw +brew install webclaw +``` + +### 预编译二进制 + +从 [GitHub Releases](https://github.com/0xMassi/webclaw/releases) 下载 macOS、Linux 和 Windows 二进制文件。 + +### Docker + +```bash +docker run --rm ghcr.io/0xmassi/webclaw https://example.com +``` + +### Cargo + +```bash +cargo install --git https://github.com/0xMassi/webclaw.git webclaw-cli +cargo install --git https://github.com/0xMassi/webclaw.git webclaw-mcp +``` + +如果从源码构建时因缺少本机构建工具而失败,请先安装对应平台的依赖: + +| 操作系统 | 命令 | +| --- | --- | +| Debian / Ubuntu | `sudo apt install -y pkg-config libssl-dev cmake clang git build-essential` | +| Fedora / RHEL | `sudo dnf install -y pkg-config openssl-devel cmake clang git make gcc` | +| Arch | `sudo pacman -S pkg-config openssl cmake clang git base-devel` | +| macOS | `xcode-select --install` | + +--- + +## 快速开始 + +### 抓取单个页面 + +```bash +webclaw https://stripe.com --format markdown +``` + +### 返回 LLM 优化文本 + +```bash +webclaw https://docs.anthropic.com --format llm +``` + +### 只保留正文内容 + +```bash +webclaw https://example.com/blog/post --only-main-content +``` + +### 包含或排除选择器 + +```bash +webclaw https://example.com \ + --include "article, main, .content" \ + --exclude "nav, footer, .sidebar, .ad" +``` + +### 爬取一个文档站点 + +```bash +webclaw https://docs.rust-lang.org --crawl --depth 2 --max-pages 50 +``` + +### 工作流示例 + +- [HTML 转 Markdown 用于 RAG](examples/html-to-markdown-rag/) +- [兼容 Firecrawl 的 API](examples/firecrawl-compatible-api/) +- [基于 MCP 的网页抓取](examples/mcp-web-scraping/) +- [使用 ColdProxy 的代理支持爬取](examples/proxy-backed-crawling/) + +### 提取品牌资产 + +```bash +webclaw https://github.com --brand +``` + +### 对比页面随时间的变化 + +```bash +webclaw https://example.com/pricing --format json > pricing-old.json +webclaw https://example.com/pricing --diff-with pricing-old.json +``` + +--- + +## MCP 服务器 + +webclaw 内置了面向 AI 智能体的 MCP 服务器。 + +无需安装——把任意 MCP 客户端指向 npx 启动器即可: + +```json +{ + "mcpServers": { + "webclaw": { + "command": "npx", + "args": ["-y", "@webclaw/mcp"] + } + } +} +``` + +或者运行 `npx create-webclaw`,让它自动检测你的 AI 工具并替你写好配置。 + +配好之后,就可以让你的智能体做这样的事: + +```text +抓取这些竞品的定价页面,并总结它们之间的差异。 +``` + +```text +爬取这个文档站点,为 RAG 索引准备干净的上下文。 +``` + +```text +从这家公司的官网提取品牌色、字体和 logo。 +``` + +--- + +## 作为智能体 Skill 使用 + +一条命令,就能把 webclaw 添加到 Claude Code、Cursor、Windsurf 及其他 MCP 智能体: + +```bash +npx skills add 0xMassi/webclaw-skill +``` + +你的智能体会把 scrape、crawl、map、extract、summarize、diff、brand、search 作为原生工具使用。多数站点无需 API Key 即可在本地提取;设置 `WEBCLAW_API_KEY` 后即可处理受保护以及需要 JavaScript 渲染的页面。 + +可在 [skills.sh](https://www.skills.sh/0xMassi/webclaw-skill/webclaw) 上找到它。 + +--- + +## 工具 + +| 工具 | 作用 | 本地 | +| --- | --- | :-: | +| `scrape` | 将单个 URL 提取为 markdown、text、JSON、LLM 格式或 HTML | 是 | +| `crawl` | 跟随同源链接并提取发现的页面 | 是 | +| `map` | 发现 URL,但不逐页提取 | 是 | +| `batch` | 并行抓取多个 URL | 是 | +| `extract` | 将页面内容转换为结构化数据 | 是(本地或已配置的 LLM) | +| `summarize` | 总结一个页面 | 是(本地或已配置的 LLM) | +| `diff` | 对比页面内容快照 | 是 | +| `brand` | 提取颜色、字体、logo 与元数据 | 是 | +| `search` | 搜索网络并抓取结果 | 托管 API | +| `research` | 多来源深度研究工作流 | 托管 API | + +--- + +## SDK + +```bash +npm install @webclaw/sdk +pip install webclaw +go get github.com/0xMassi/webclaw-go +``` + +
+TypeScript + +```ts +import { Webclaw } from "@webclaw/sdk"; + +const client = new Webclaw({ apiKey: process.env.WEBCLAW_API_KEY! }); + +const page = await client.scrape({ + url: "https://example.com", + formats: ["markdown"], + only_main_content: true, +}); + +console.log(page.markdown); +``` + +
+ +
+Python + +```python +from webclaw import Webclaw + +client = Webclaw(api_key="wc_your_key") + +page = client.scrape( + "https://example.com", + formats=["markdown"], + only_main_content=True, +) + +print(page.markdown) +``` + +
+ +
+cURL + +```bash +curl -X POST https://api.webclaw.io/v1/scrape \ + -H "Authorization: Bearer $WEBCLAW_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "url": "https://example.com", + "formats": ["markdown"], + "only_main_content": true + }' +``` + +
+ +--- + +## 输出格式 + +| 格式 | 适用场景 | +| --- | --- | +| `markdown` | 保留结构的干净页面内容 | +| `llm` | 面向智能体与 RAG 流水线的紧凑 LLM 上下文 | +| `text` | 最少格式的纯文本 | +| `json` | 结构化元数据、链接、图片与已提取字段 | +| `html` | 清洗后的 HTML,便于自定义处理 | + +--- + +## 本地优先,按需上云 + +核心提取路径下,CLI 与 MCP 服务器无需账号即可在本地运行。 + +当你需要以下能力时,使用托管 API [webclaw.io](https://webclaw.io): + +- 无需自行运维基础设施即可访问受保护的站点 +- JavaScript 渲染 +- 异步的爬取与研究任务 +- 网络搜索 +- 页面监控(watches)与生产用量统计 +- 供应用代码调用的 SDK + +```bash +export WEBCLAW_API_KEY=wc_your_key + +webclaw https://example.com --cloud +``` + +--- + +## 你可以用它构建什么 + +| 场景 | 示例 | +| --- | --- | +| AI 智能体的网页访问 | 为 Claude、Cursor 或其他 MCP 客户端提供干净的页面上下文 | +| RAG 数据入库 | 爬取文档、帮助中心、博客与知识库 | +| 竞品监控 | 追踪定价页、更新日志、文档与产品页 | +| 结构化提取 | 把杂乱的页面变成带类型的 JSON,用于自动化 | +| 研究工作流 | 搜索、抓取、总结并引用多个来源 | +| 品牌情报 | 提取 logo、颜色、字体与社交元数据 | + +## 架构 + +```text +webclaw/ + crates/ + webclaw-core HTML 转 markdown、text、JSON 与 LLM 就绪输出 + webclaw-fetch 抓取、爬取、批处理与站点映射 + webclaw-llm 本地与托管 LLM 提供方支持 + webclaw-pdf PDF 文本提取 + webclaw-mcp 面向 AI 智能体的 MCP 服务器 + webclaw-cli 命令行界面 +``` + +`webclaw-core` 是纯粹的提取逻辑:没有网络 I/O,接口面小,可脱离抓取层独立使用。 + +--- + +## 配置 + +| 变量 | 说明 | +| --- | --- | +| `WEBCLAW_API_KEY` | 托管 API 密钥 | +| `OLLAMA_HOST` | 本地 LLM 功能所用的 Ollama 地址 | +| `OPENAI_API_KEY` | 兼容 OpenAI 的 LLM 提供方密钥 | +| `OPENAI_BASE_URL` | 兼容 OpenAI 的接口地址 | +| `ANTHROPIC_API_KEY` | 兼容 Anthropic 的 LLM 提供方密钥 | +| `ANTHROPIC_BASE_URL` | 兼容 Anthropic 的接口地址 | +| `WEBCLAW_PROXY` | 单个代理 URL | +| `WEBCLAW_PROXY_FILE` | 代理池文件 | + +--- + +## 参与贡献 + +眼下最有价值的贡献都很务实、也很小: + +- 为真实的智能体与 RAG 工作流补充示例 +- 改进 SDK 代码片段 +- 上报提取效果不佳的页面 +- 为杂乱的 HTML 添加会失败的测试样例(fixtures) +- 完善面向 MCP 客户端与本地配置的文档 +- 在更多 Linux / macOS 环境上测试 CLI + +不错的入手点: + +- [Good first issues](https://github.com/0xMassi/webclaw/issues?q=label%3A%22good+first+issue%22) +- [提交一个 bug 报告](https://github.com/0xMassi/webclaw/issues/new) +- [发起一场讨论](https://github.com/0xMassi/webclaw/discussions) + +如果某个页面提取效果不好,请附上: + +```text +URL: +命令或 API 请求: +期望输出: +实际输出: +使用的格式: markdown / llm / text / json / html +使用方式: CLI / MCP / SDK / API: +``` + +发帖前,请从日志中移除密钥、Cookie、私有令牌和客户数据。 + +--- + +## 基础设施合作伙伴 + + + + + + + + +
+ + ColdProxy + +
+ ColdProxy 作为基础设施合作伙伴支持 webclaw,提供覆盖 195+ 个国家/地区的住宅 IPv4、 + 住宅 IPv6 与数据中心 IPv6 代理基础设施,适用于公开数据采集、区域测试、监控与网页抓取工作流。 + 在官网了解 ColdProxy 的最新套餐与优惠。 + 使用优惠码 webclaw8Off,首单可享 8% 折扣。 + 详见代理支持爬取指南,了解如何把 ColdProxy 接入 webclaw。 +
+ +--- + +## 工作室合作伙伴 + + + + + + + + + + + + + + +
+ + NodeMaven + + + NodeMaven 提供市场上最可靠、IP 质量最高的代理服务。适用于自动化、网页抓取、SEO 研究 + 与社媒管理:99.9% 在线率、最长 7 天的粘性会话、IP 过滤(所有代理欺诈评分低于 97%)、无需 KYC, + 并提供最高 10% 的流量返现。在 NodeMaven 使用 + WEBCLAW35 享移动与住宅代理 35% 折扣,或用 WEBCLAW40 享 ISP(静态)代理 40% 折扣。 +
+ + RapidProxy + + + RapidProxy 为大规模数据采集提供快速、可靠的代理基础设施。凭借 9000 万+ 住宅 IP、 + 智能轮换、高并发、AI 驱动的验证码识别以及永不过期的流量,帮助抓取工作流在规模化下保持稳定。 + 使用优惠码 webclaw 享 9 折,或 免费试用。 +
+ + MangoProxy + + + MangoProxy 提供覆盖 200+ 地区的住宅、ISP、数据中心与移动代理,背靠 9000 万+ IP 池, + 支持 HTTP 与 SOCKS5,为大规模网页抓取与数据采集提供高稳定性。在 + mangoproxy.com + 使用优惠码 0XMASSI 享 ISP(静态)代理 8% 折扣。 +
+ +--- + +## 社区插件 + +将 webclaw 集成到 AI 智能体平台的第三方插件: + +| 插件 | 平台 | 作用 | +|---|---|---| +| [openclaw-webclaw](https://github.com/jal-co/openclaw-webclaw) | [OpenClaw](https://openclaw.ai) | 原生 webclaw v1 API 插件,含 9 个工具:scrape、search、crawl、extract、summarize、diff、map、batch、brand | +| [hermes-webclaw](https://github.com/jal-co/hermes-webclaw) | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | 面向完整 v1 API 的网络搜索提供方与 9 个专用工具。通过 `hermes plugins install jal-co/hermes-webclaw` 安装 | + +做了 webclaw 集成?欢迎 [提交 PR](https://github.com/0xMassi/webclaw/pulls) 把它加到这里。 + +--- + +## 贡献者 + +感谢每一位通过 issue、示例、文档、bug 报告与 PR 改进 webclaw 的人。 + + + webclaw contributors + + +--- + +## Star 历史 + + + + + + Star History Chart + + + +--- + +## 许可证 + +[AGPL-3.0](LICENSE)