web-content-fetcher

web-content-fetcher

热门

从任意URL提取文章内容,输出干净的Markdown格式。主要使用Scrapling脚本(自动从快速模式回退到隐身模式),对于简单页面则使用Jina Reader作为备选。保留标题、链接、图片、列表和代码块。当用户想要获取、阅读、提取、抓取或总结URL内容时——包括博客文章、新闻文章、微信公众号文章、文档页面或任何网页——请使用此技能。当用户说“帮我读一下这篇文章”、“抓取这个网页”、“提取正文”或“read this page for me”时,也应触发。

601Star
0Fork
更新于 2026/7/26
SKILL.md
readonly只读
name
web-content-fetcher
description

从任意URL提取文章内容,输出干净的Markdown格式。 主要使用Scrapling脚本(自动从快速模式回退到隐身模式), 对于简单页面则使用Jina Reader作为备选。 保留标题、链接、图片、列表和代码块。 当用户想要获取、阅读、提取、抓取或总结URL内容时—— 包括博客文章、新闻文章、微信公众号文章、 文档页面或任何网页——请使用此技能。 当用户说“帮我读一下这篇文章”、“抓取这个网页”、“提取正文” 或“read this page for me”时,也应触发。

Web Content Fetcher

给定一个URL,将其主要内容返回为干净的Markdown——保留标题、链接、图片、列表和代码块。

提取策略

始终对每个URL只尝试一种方法——不要盲目级联。提前选择正确的方法。

URL
 │
 ├─ 1. Scrapling脚本(首选)
 │     运行fetch.py——根据域名路由表决定使用快速模式还是--stealth。
 │     适用于大多数网站。直接返回干净的Markdown。
 │
 └─ 2. Jina Reader(备选——仅当Scrapling失败或依赖未安装时)
       web_fetch("https://r.jina.ai/<url>")
       免费版:每天200次请求。快速(约1-2秒),Markdown输出良好。
       不适用于:微信公众号(403)、某些中文平台。

Scrapling脚本

python3 <SKILL_DIR>/scripts/fetch.py "<url>" [max_chars] [--stealth]

<SKILL_DIR> 是此SKILL.md所在的目录。在调用脚本前解析它。

脚本内置两种模式:

  • 默认(快速): HTTP获取,约1-3秒,适用于大多数网站
  • --stealth 无头浏览器,约5-15秒,适用于JS渲染或反爬虫网站

当不使用--stealth运行时,如果快速模式结果内容太少,脚本会自动回退到隐身模式。因此很少需要手动指定--stealth——唯一需要强制使用的情况是当你已经知道该网站需要它时(参见路由表),这样可以节省首次快速尝试的时间。

域名路由

使用此表在首次调用时选择正确的模式:

域名 命令 原因
mp.weixin.qq.com fetch.py <url> --stealth JS渲染内容
zhuanlan.zhihu.com fetch.py <url> --stealth 反爬虫 + JS
juejin.cn fetch.py <url> --stealth JS渲染的SPA
sspai.com fetch.py <url> 静态HTML
blog.csdn.net fetch.py <url> 静态HTML
ruanyifeng.com fetch.py <url> 静态博客
openai.com fetch.py <url> 静态HTML
blog.google fetch.py <url> 静态HTML
其他所有 fetch.py <url> 自动回退处理

脚本选项

# 基本——自动选择快速或隐身模式
python3 <SKILL_DIR>/scripts/fetch.py "https://sspai.com/post/73145"

# 对已知JS密集型网站强制使用隐身模式
python3 <SKILL_DIR>/scripts/fetch.py "https://mp.weixin.qq.com/s/xxx" --stealth

# 限制输出为15000个字符(默认:30000)
python3 <SKILL_DIR>/scripts/fetch.py "https://example.com/article" 15000

# JSON输出,包含元数据(url, mode, selector, content_length)
python3 <SKILL_DIR>/scripts/fetch.py "https://example.com" --json

安装依赖

仅首次使用——脚本会检查并告知缺少什么:

pip install scrapling html2text

如果使用系统管理的Python(macOS/Linux),请添加--break-system-packages或使用虚拟环境。

失败规则

  • 同一URL失败一次→放弃,告知用户“无法从该URL提取内容”
  • 不要重试——每次失败的调用都会浪费上下文令牌