web-scraper

智能三级降级网页内容提取。当用户发送 URL 链接并要求提取/阅读/总结网页内容时自动触发。 触发场景:用户发送任何 http/https URL 并期望获取其内容(非 GitHub PR/Issue,非搜索请求)。 例如:"读取这篇文章"、"帮我看看这个链接"、"总结这个网页"、直接发 URL。

SKILL.md

GitHub

web-scraper — 智能三级降级网页提取

基于石臻说AI的《OpenClaw 永久免费的提取任何网页的终极方案》,实现三工具智能切换策略。

核心原则

三个工具不是竞争关系,是互补关系。通过智能降级覆盖 99% 的内容提取场景。

路由决策表

根据 URL 域名和场景,选择最优工具:

优先级 工具 适用场景 限制
1 Jina Reader(via WebFetch) 英文博客、Substack、Medium、技术文档 200次/天,20 RPM
2 curl_cffi 脚本 Jina 失败、微信公众号、反爬平台、中文站点 无限制
3 WebFetch 直连 静态页面、GitHub README、简单文档 全页噪音多
4 CDP 浏览器(/browse 或 web-access) 需登录态、极端反爬、JS 渲染页面 最慢

域名直接路由(跳过降级,直达最优)

以下域名已知最优路径,直接使用对应工具,不走降级链:

mp.weixin.qq.com     → 直接用 curl_cffi 脚本(Jina 403,WebFetch 验证拦截)
weixin.qq.com        → 直接用 curl_cffi 脚本
xhslink.com          → 直接用 CDP 浏览器(web-access skill)
xiaohongshu.com      → 直接用 CDP 浏览器(web-access skill)
weibo.com            → 直接用 CDP 浏览器(web-access skill)

执行流程

Step 1: 分析 URL

判断域名,检查是否命中直接路由表。命中则跳到对应工具,否则进入降级链。

Step 2: Jina Reader(首选)

WebFetch(url="https://r.jina.ai/{去掉 http(s):// 的原始URL}", prompt="完整提取文章内容...")
  • URL 格式:r.jina.ai/ + 原始域名路径(不保留 http:// 前缀)
  • 返回干净 Markdown,自动去除导航、广告、侧边栏
  • Token 节省 60-70%
  • 如果返回 403、空内容、或明显不是正文 → 进入 Step 3

Step 3: curl_cffi 脚本(反爬杀手)

~/.miniforge3/bin/python3 ~/.claude/skills/web-scraper/scripts/scrape.py "URL" 30000
  • 使用 curl_cffi 浏览器指纹模拟,绕过大部分反爬
  • html2text 转 Markdown,保留链接和图片
  • 自动选择最佳内容区域(article > main > .rich_media_content > body)
  • 无次数限制,无需 API Key
  • 如果返回 ERROR 或内容过少 → 进入 Step 4

Step 4: WebFetch 直连(兜底)

WebFetch(url="原始URL", prompt="提取文章正文内容...")
  • 返回全页内容(含噪音),由小模型提取
  • 仅适合简单静态页面
  • 如果仍然失败 → 进入 Step 5

Step 5: CDP 浏览器(最终手段)

触发 web-access skill 的 CDP 模式,使用真实浏览器访问。

关键参数

  • maxChars / max_chars: 统一设为 30000,保证完整正文同时避免 context 溢出
  • Jina: prompt 中明确要求"提取正文内容"而非"分析页面"

陷阱警告

  1. 不要用 get_all_text():纯文字提取会丧失标题层级、链接、图片。必须配合 html2text 保留 Markdown 结构。
  2. Jina URL 格式:r.jina.ai/example.com/path,不是 r.jina.ai/https://example.com/path。
  3. 微信公众号:Jina 和 WebFetch 都无法获取,必须用 curl_cffi 脚本或 CDP。
  4. 提取后处理:如果用户需要的是文章分析/总结而非原文,在提取完成后再用 Claude 处理,不要在 WebFetch prompt 中同时做提取+分析(分离关注点,提取质量更高)。

成功指标

提取结果应包含:

  • 文章标题和作者
  • 正文段落(保留层级结构)
  • 链接和图片 URL(作为引用素材)
  • 代码块(如有)
  • 无导航栏、广告、推荐列表等噪音