Skill: jllyzzd/clean-content-fetch (version 1.0.5)

--- name: clean-content-fetch description: 获取干净、可读的网页正文内容，适合现代网页、博客、新闻、公告和微信公众号文章抓取；支持网页正文提取、内容清洗、去噪、Markdown 输出，适用于普通 fetch 效果不佳、页面噪音较多或动态渲染干扰的场景。Clean content fetch for modern web pages, article extraction, WeChat article capture, content cleanup, noise reduction, and markdown output when ordinary fetch is not clean enough. --- # Scrapling Web Fetch 当用户要获取网页内容、正文提取、把网页转成 markdown/text、抓取文章主体时，优先使用此技能。 ## 默认流程 1. 使用 `python3 scripts/scrapling_fetch.py <url> <max_chars>` 2. 默认正文选择器优先级： - `article` - `main` - `.post-content` - `[class*="body"]` 3. 命中正文后，使用 `html2text` 转 Markdown 4. 若都未命中，回退到 `body` 5. 最终按 `max_chars` 截断输出 ## 用法 ```bash python3 scripts/scrapling_fetch.py <url> 30000 ``` ## 依赖 常见依赖包括： - `scrapling` - `html2text` - `curl_cffi` - `playwright` - `browserforge` 建议在隔离环境中安装依赖，再运行脚本。若宿主环境限制系统级 pip 安装，可使用项目级虚拟环境。 示例： ```bash python3 -m venv .venv . .venv/bin/activate pip install scrapling html2text curl_cffi playwright browserforge python -m playwright install chromium python scripts/scrapling_fetch.py <url> 30000 ``` ## 输出约定 脚本默认输出 Markdown 正文内容。 如需结构化输出，可追加 `--json`。 如需调试提取命中了哪个 selector，可查看 stderr 输出。 ## 附加资源 - 用法参考：`references/usage.md` - 选择器策略：`references/selectors.md` - 统一入口：`scripts/fetch-web-content` ## 何时用这个技能 - 获取文章正文 - 抓博客/新闻/公告正文 - 将网页转成 Markdown 供后续总结 - 常规 fetch 效果差，希望提升现代网页抓取稳定性 - 抓小红书分享短链或笔记落地页正文 ## 小红书抓取方法 对于 `xhslink.com` 短链或小红书笔记页，可直接运行： ```bash python3 scripts/scrapling_fetch.py 'http://xhslink.com/o/9745hugimlD' 30000 ``` 说明： - 脚本会先解析短链并抓取落地页正文 - 适合提取小红书笔记文案、标题和主体内容 - 若页面需要更复杂交互，再切到浏览器自动化 ## 安全边界 - 仅用于抓取公开网页的正文内容与可读文本 - 不用于登录后页面、私有数据、受限资源或绕过权限控制 - 若目标页面需要账号登录、点击授权、滚动交互或复杂会话状态，应改用浏览器自动化并在明确授权下执行 ## 何时不用 - 需要完整浏览器交互、点击、登录、翻页时：改用浏览器自动化 - 只是简单获取 API JSON：直接请求 API 更合适

path: references/usage.md
content: # Usage

## Basic
```bash
python3 scripts/scrapling_fetch.py <url> 30000
```

## JSON output
```bash
python3 scripts/scrapling_fetch.py <url> 30000 --json
```

## Wrapper
```bash
scripts/fetch-web-content <url> 30000
```

## Batch mode
```bash
python3 scripts/scrapling_fetch.py --batch urls.txt 20000 --json
```

## Site selector overrides
```bash
python3 scripts/scrapling_fetch.py <url> 30000 --selectors /path/to/site-overrides.json
```

path: references/site-overrides.example.json
content: {
  "example.com": [
    ".article-content",
    ".entry-content",
    "article"
  ],
  "news.example.org": [
    ".post-body",
    "main"
  ]
}


path: references/selectors.md
content: # 正文选择器策略

默认优先级：
1. `article`
2. `main`
3. `.post-content`
4. `[class*="body"]`
5. `body`（fallback）

目标：尽可能抽出正文，减少导航、页脚、边栏噪音。


path: references/release-1.0.1.md
content: # Scrapling Web Fetch 1.0.1

## 中文功能描述

Scrapling Web Fetch 是一个面向现代网页正文提取的 OpenClaw Skill，默认使用 **Scrapling + html2text** 管线获取网页内容。

### 主要特点
- **支持微信公众号文章抓取**：可抓取 `mp.weixin.qq.com` 文章正文。
- **自动清洗微信公众号尾部噪音**：会去掉“继续滑动看下一个”“轻触阅读原文”“扫码打开”“小程序提示”“Allow/Cancel/Got It”等无用容器内容。
- **节省 token**：是的，**清洗无用信息本质上会节省 token**，因为输出内容更短、更聚焦正文，后续总结/分析时上下文占用更低。
- **适合很多有反爬的网站**：依赖 Scrapling 的现代网页抓取能力，适合处理普通 requests/fetch 不稳定、页面结构复杂、存在一定反爬/动态渲染干扰的网页。
- **正文提取更稳**：按 `article → main → .post-content → [class*="body"] → body` 的顺序优先提取正文。
- **支持 Markdown 输出**：抓取后直接转成 Markdown，更适合总结、归档、二次处理。
- **支持 JSON 输出**：方便程序化接入。
- **支持批量抓取**：可一次抓多个 URL。
- **支持站点级 selector 覆盖**：可为特定网站定制正文 selector。
- **内置基础质量评分**：方便判断抓到的是不是高质量正文。

### 适用场景
- 抓取新闻、博客、公告、公众号文章正文
- 把网页内容转成 Markdown 供总结/翻译/分析
- 对抗普通 fetch 难以稳定获取内容的现代网页
- 做批量资讯采集与清洗

## English Description

Scrapling Web Fetch is an OpenClaw skill for extracting readable main content from modern web pages using a **Scrapling + html2text** pipeline.

### Key Features
- **WeChat article support**: Can fetch content from `mp.weixin.qq.com` pages.
- **Automatic WeChat tail-noise cleanup**: Removes common noisy footer/UI artifacts such as “continue scrolling”, “read original”, QR/open-in-WeChat prompts, mini-program prompts, and modal button text like Allow / Cancel / Got It.
- **Token saving**: Yes — **cleaning noisy content reduces token usage** because the final output is shorter and more focused on the actual article body.
- **Works well on many anti-bot / hard-to-fetch pages**: Built on Scrapling, which is better suited for modern pages with anti-bot friction, dynamic markup, and unstable generic fetch results.
- **Stable body extraction strategy**: Uses the selector priority `article → main → .post-content → [class*="body"] → body`.
- **Markdown output by default**: Better for summarization, archiving, and downstream processing.
- **JSON output available**: Easy to integrate programmatically.
- **Batch mode**: Fetch multiple URLs in one run.
- **Site-specific selector overrides**: Customize extraction rules per domain.
- **Basic quality scoring**: Helps estimate whether the extracted content looks like a real article body.

### Good For
- News/blog/article extraction
- WeChat article cleanup
- Converting pages into markdown for AI summarization
- Batch content collection pipelines
- Pages where simple requests/fetch often fail or produce noisy output


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)