SKILL.md
唯讀
名稱
web-content-fetcher
描述
從任何網址提取文章內容,輸出為乾淨的 Markdown。主要使用 Scrapling 腳本(自動從快速模式降級為隱匿模式),對簡單頁面則以 Jina Reader 作為替代方案。保留標題、連結、圖片、列表和程式碼區塊。當使用者想要擷取、讀取、提取、爬取或摘要某個網址的內容時(包括部落格文章、新聞、微信公眾號文章、文件頁面或任何網頁),請使用此技能。當使用者說「幫我讀一下這篇文章」、「抓取這個網頁」、「提取正文」或「read this page for me」時,也請觸發此技能。
Web Content Fetcher
給定一個網址,將其主要內容回傳為乾淨的 Markdown — 保留標題、連結、圖片、列表和程式碼區塊。
提取策略
每個網址只嘗試一種方法 — 不要盲目串接。事先選對方法。
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 格式輸出,包含元資料(網址、模式、選擇器、內容長度)
python3 <SKILL_DIR>/scripts/fetch.py "https://example.com" --json
安裝相依套件
僅在首次使用時需要 — 腳本會檢查並告知缺少哪些套件:
pip install scrapling html2text
若使用系統管理的 Python(macOS/Linux),請加上 --break-system-packages 或使用虛擬環境。
失敗規則
- 同一個網址失敗一次 → 放棄,告訴使用者「無法從此網址提取內容」
- 不要重試 — 每次失敗的呼叫都會浪費對話 token






