编程 webclaw 开源:Rust 写的网页提取工具,绕过 Cloudflare 还比 Chrome 方案快 20 倍

2026-09-12 09:53:32

webclaw 开源:Rust 写的网页提取工具,绕过 Cloudflare 还比 Chrome 方案快 20 倍

最近在做一个 RAG 项目,需要把大量技术文档喂给大模型。
更气人的是,有些网站还加了 Cloudflare 防护,直接返回 403 或者验证码页面。用 Playwright 跑无头浏览器吧,又慢又重,一个请求要等好几秒。
在 GitHub 上翻了无数项目,试过了 trafilatura、newspaper3k、readability 等等,效果都差强人意。
直到发现了webclaw,简直是打开了新世界的大门!

项目介绍

webclaw是一款专为 AI 工作流打造的高性能网页提取工具。

它的核心目标很简单:把网页转成干净、结构化、适合大模型使用的内容
不同于传统的网页抓取工具,webclaw 从底层重新设计了整个提取流程。它用 Rust 编写,通过 TLS 指纹模拟浏览器行为,在不启动真正浏览器的情况下就能绕过大多数反爬机制。

核心亮点

🌟 Token 优化:减少 90% 的无效信息

这是 webclaw 最惊艳的特性。原始 HTML 页面通常包含大量的导航链接、CSS 样式、脚本代码、重复的页脚内容等。
这些信息对人类阅读来说是必要的,但对 AI 模型来说纯粹是浪费 token。
webclaw 的提取引擎采用九步优化流水线,通过文本密度、语义标签、链接比例、位置信息、上下文相关性等多种指标对 DOM 节点进行综合评分。

⚡ 极速响应:比 Chrome 方案快 20 倍

传统的网页抓取方案(如 Playwright、Selenium)需要启动完整的浏览器实例,加载整个渲染引擎、JavaScript 引擎、CSS 解析器等,每个请求耗时 2-3 秒甚至更久。
这对于需要频繁访问网页的 AI Agent 来说是无法接受的——用户无法容忍等待几秒才能得到回答。
webclaw 采用完全不同的思路:它不启动浏览器,而是在TLS 层面模拟浏览器行为。TCP 握手、加密套件、扩展信息、指纹特征等全部模拟 Chrome 142 的行为,让反爬系统误以为是真实用户访问。
这种方式带来了惊人的性能提升:
• 静态页面平均响应时间仅118ms
• 本地提取 10KB 页面只需0.8ms
• 本地提取 100KB 页面只需3.2ms
• 本地提取 500KB 页面只需12.1ms
• 整体性能比基于 Chrome 的方案快20 倍

🤖 原生 MCP 支持:无缝接入 AI Agent

webclaw 内置了 MCP(Model Context Protocol)服务器,这意味着它可以直接接入 Claude Code、Cursor、Windsurf、OpenCode、Codex 等主流 AI 工具,无需编写任何适配代码。
MCP 是连接 AI 模型和外部工具的标准协议,通过统一的接口规范,AI Agent 可以调用各种工具而无需了解底层实现细节。
只需一行命令即可完成配置:

npx create-webclaw

这个命令会自动检测你安装的 AI 工具,并为每个工具生成相应的配置文件。配置完成后,重启你的 AI 工具,webclaw 的所有功能就会自动可用。
安装后,你的 AI Agent 就能直接执行网页抓取、站点爬取、内容对比、品牌信息提取等操作。

🛡️ 智能反爬绕过:自动应对 Cloudflare 等防护

现代网站普遍使用 Cloudflare、Akamai、DataDome 等反爬系统。这些系统会检查 TLS 指纹、浏览器特征等,普通的 HTTP 请求很容易被拦截。
webclaw 通过primp库在底层模拟 Chrome 的 TLS 指纹,使得请求看起来完全像来自真实浏览器。对于需要 JavaScript 渲染的页面,webclaw 会自动检测并切换到渲染路径,无需手动配置。

📦 丰富的输出格式:满足各种场景需求

webclaw 支持多种输出格式:

格式适用场景
markdown保留结构的干净内容
llm专为大模型优化的紧凑格式
text纯文本,最小化格式
json结构化元数据和提取字段
html清理后的 HTML
其中llm格式特别值得一提,它会进一步去除重复链接、空段落等,是喂给 RAG 系统的最佳选择。

快速上手

方法一:MCP 一键安装(推荐)

npx create-webclaw

这个命令会自动检测你安装的 AI 工具(Claude Code、Cursor、Windsurf 等)并完成配置。

方法二:Homebrew(macOS)

brew tap 0xMassi/webclaw
brew install webclaw

方法三:预编译二进制

从 GitHub Releases 页面下载 macOS 或 Linux 二进制文件:
https://github.com/0xMassi/webclaw/releases

方法四:Docker

docker run --rm ghcr.io/0xmassi/webclaw https://example.com

使用示例

基础提取

# 提取单页内容(默认 markdown 格式)
webclaw https://example.com

# 指定输出格式
webclaw https://example.com --format markdown
webclaw https://example.com --format llm
webclaw https://example.com --format json

只保留主内容

webclaw https://example.com/blog/post --only-main-content

自定义选择器

webclaw https://example.com \
  --include "article, main, .content" \
  --exclude "nav, footer, .sidebar, .ad"

爬取文档站

webclaw https://docs.rust-lang.org --crawl --depth 2 --max-pages 50

提取品牌信息

webclaw https://github.com --brand

页面变化对比

# 保存快照
webclaw https://example.com/pricing --format json > pricing-old.json

# 对比变化
webclaw https://example.com/pricing --diff-with pricing-old.json

SDK 使用

TypeScript

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

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)

写在最后

webclaw 是一款真正理解 AI 工作流需求的网页提取工具。它从底层重新设计了网页提取流程,通过 TLS 指纹模拟、智能内容评分、多格式输出等特性,解决了传统抓取工具存在的三大痛点:
痛点一:抓不到——反爬防护
痛点二:抓不干净——大量噪声
痛点三:抓了没用——格式不适合 AI
如果你正在构建 RAG 系统、AI Agent,或者需要定期抓取网页内容,webclaw 值得一试!
GitHub:https://github.com/0xMassi/webclaw

复制全文 生成海报 webclaw 网页提取 反爬 MCP Rust

推荐文章

程序员茄子在线接单