Skip to content
Back to skills

Web Scraper

ASecurity

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

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentspythonbashgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add shengdabai/Tony-Claude-Code-Skills --skill web-scraper --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Web Scraper?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Web Scraper
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shengdabai-web-scraper/badge)](https://www.skillsdirectory.com/skills/shengdabai-web-scraper)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: web-scraper
description: >
  智能三级降级网页内容提取。当用户发送 URL 链接并要求提取/阅读/总结网页内容时自动触发。
  触发场景:用户发送任何 http/https URL 并期望获取其内容(非 GitHub PR/Issue,非搜索请求)。
  例如:"读取这篇文章"、"帮我看看这个链接"、"总结这个网页"、直接发 URL。
metadata:
  author: adam
  version: "1.0.0"
  source: https://juejin.cn/post/7615250753897955391
---

# 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 脚本(反爬杀手)

```bash
~/.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(作为引用素材)
- 代码块(如有)
- 无导航栏、广告、推荐列表等噪音

Files in this skill

  • SKILL.md4.1 KB
  • scripts/scrape.py2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…