知乎抓取.skill:收藏夾到正文 Markdown 的 Agent 抓取流程

前言

把知乎收藏夾或專欄裏的文章遷到本地筆記,常見做法是手寫腳本調接口,或在瀏覽器裏逐篇複製。接口字段不全、登錄態過期、圖片外鏈失效、批量中斷後從頭再來,都會把這件事拖得很長。下面介紹 SkillHub 上的 知乎抓取.skill(座標 @user_9610c87f/zhihu-fetch-skill):在 Agent 環境裏用統一 CLI 做列表抓取、正文與圖片落盤,並可選同步到 Obsidian。

這是什麼

知乎抓取.skill 是面向數據分析類場景的社區 Skill(SkillHub 分類 data-analysis,當前頁面版本 v2.2.0,標籤 requires_api_key=false)。維護方在 SkillHub 標註的 Git 倉庫爲 handsomestWei/zhihu-fetch-skill。

一句話定位:從知乎 收藏夾、專欄、個人頁、問題頁 等鏈接出發,生成文章列表 JSON,再批量拉取 Markdown 正文與本地化圖片,支持 API / Playwright 多級降級、Cookie 持久化與保活、斷點續傳,並可把結果寫入 Obsidian 的「知乎收藏 / 知乎筆記」目錄結構。

核心功能

以下能力均來自官方簡介與倉庫內 SKILL.md 說明,安裝後由 Agent 按文檔路由到 python scripts/zhihu.py 各子命令。

  1. 鏈接自動路由:粘貼 zhihu.com / zhuanlan.zhihu.com 鏈接時,用 route 識別收藏夾、專欄、單篇、回答、問題頁、個人主頁等類型,再調用對應列表或單篇流程。
  2. 多級抓取降級:正文優先 API,不完整或受限時走頁面 DOM;Headless 被識別時可配合 Stealth、交互模式等(文檔中列爲 api / stealth / interactive)。
  3. 登錄與 Cookie:login / relogin 通過瀏覽器寫入工作區 zhihu_cookies.json;批量與圖片下載自動攜帶 Cookie,降低專欄 403;腳本內含 TTL 檢測與週期性保活策略。
  4. 批量正文與圖片:batch 按列表 JSON 輸出編號 Markdown、images/ 目錄及 _progress.json;篇間默認隨機間隔(可配置 delay / delay_jitter)。
  5. 斷點與增量:批量中斷後重跑同一條 batch 命令即可續傳;列表側支持 --since-last,對照工作區 URL 索引與已有產物跳過未更新條目。
  6. 抓取上限可配置:默認不會無上限全量爬;可通過 zhihu_fetch_config.json、工作區覆蓋或 limits --set 固化條數,命令行可用 --max-items / --all。
  7. Obsidian 導出(可選):obsidian 寫入 {Vault}/知乎收藏/{分類}/;notes 在並列根目錄生成 {Vault}/知乎筆記/ 而不改動鏡像原文。
  8. 運行摘要:列表與 batch 結束會寫入工作區 zhihu_run_summary.json,便於 Agent 彙總成功、跳過與失敗項;失敗清單可用 failures 寫入 Vault。

安裝與啓用

通過 SkillHub 安裝到當前 Agent

SkillHub 頁面給出的安裝提示爲:依據 SkillHub 安裝說明 安裝本 Skill。CLI 側典型步驟如下。

1、檢查是否已有 skillhub:

command -v skillhub && skillhub --version

2、若未安裝,可按安裝文檔執行完整安裝或僅 CLI(文檔中的 curl 命令以 skillhub.cn 爲準)。

3、安裝 Skill 時必須用 --dir 指向當前 Agent 的 skills 目錄,否則默認落在 ./skills/ 可能不會被識別:

skillhub install @user_9610c87f/zhihu-fetch-skill --dir <skills 目錄>

常用路徑(來自 SkillHub 安裝文檔):Cursor 爲 ~/.cursor/skills/;Claude Code 爲 ~/.claude/skills/;Codex 爲 ~/.codex/skills/ 或項目下 .agents/skills/。具體以你當前客戶端文檔爲準。

也可將下面提示交給支持 Skill 的 AI,由其按安裝文檔完成安裝:

請根據 https://skillhub.cn/install/skillhub.md,安裝 `@user_9610c87f/zhihu-fetch-skill`。

技能內 Python 依賴

安裝 Skill 後,在技能根目錄(含 SKILL.md 與 scripts/)準備運行環境:

cd <技能根目錄>/scripts
pip install -r requirements.txt
playwright install chromium

工作區默認在技能根下的 zhihu-fetch-workspace/(可通過環境變量 ZHIHU_WORKSPACE 覆蓋),Cookie、進度與默認輸出均落在該目錄,且不應提交到 Git。

典型用法

經過上面的步驟,推薦按「先路由、再列表、再批量、再可選導出」執行。以下命令均在技能根目錄下運行,入口統一爲 python scripts/zhihu.py。

1. 登錄(需要登錄態的正文)

未登錄或 Cookie 失效時:

python scripts/zhihu.py login

需要重新寫回 Cookie 時使用 relogin。可選:設置環境變量 ZHIHU_VERIFY_URL 或在 login 後傳入完整 https 鏈接,用於二次確認某內需登錄頁是否可訪問。

2. 任意鏈接:先 route

python scripts/zhihu.py route "https://www.zhihu.com/collection/<id>"

個人主頁默認會走跟讀包(專欄 + 文章 + 回答,默認增量);單篇 /p/ 或回答鏈路由 fetch 處理。

3. 收藏夾列表 → 批量正文

python scripts/zhihu.py collection "https://www.zhihu.com/collection/<id>"
python scripts/zhihu.py batch zhihu-fetch-workspace/zhihu_collection_<id>.json

輸出目錄默認爲 {workspace}/zhihu_articles_{collectionId}/,內含 _progress.json 與 images/。中斷後再次執行同一條 batch 即可續跑。

4. 寫入 Obsidian(可選)

Vault 路徑優先命令行參數,否則可讀環境變量 OBSIDIAN_VAULT:

python scripts/zhihu.py obsidian zhihu-fetch-workspace/zhihu_articles_<id> /path/to/ObsidianVault
python scripts/zhihu.py notes /path/to/ObsidianVault

原文鏡像在 知乎收藏/;筆記板塊在並列的 知乎筆記/,不刪除鏡像文件。

5. 查看上限與調整默認條數

python scripts/zhihu.py limits
python scripts/zhihu.py limits --set collection.max_items=10

用戶若要求「這次多抓」,在當次命令加 --max-items 或 --all;若要求「以後默認」,應寫入 zhihu_fetch_config.json 而非只改單次參數。

回覆用戶前,Agent 可讀取 {workspace}/zhihu_run_summary.json 彙總當次結果。

適用場景與注意

適合誰:需要把知乎收藏夾、專欄或作者產出批量歸檔爲本地 Markdown;希望 Agent 按 Skill 文檔自動選命令、處理 Cookie 與斷點;使用 Obsidian 並希望按「知乎收藏 / 知乎筆記」目錄落盤的用戶。

限制與注意:

  • 遵守知乎服務條款與合理使用頻率;批量默認帶隨機間隔,仍可能觸發安全驗證頁,需 relogin 或按文檔排查 Cookie。
  • 不帶條數時受配置上限約束,不會默認全量抓取;全量需顯式 --all 或配置 unlimited。
  • 依賴 Chromium 與 Python 環境;Windows 控制台編碼問題在腳本中已有 UTF-8 處理說明。
  • SkillHub 頁面統計(截至資料抓取):評分 100000,下載 8642;與第三方轉載頁面的數字可能不一致,以 SkillHub 技能頁 爲準。

結尾

知乎抓取.skill 把「識別鏈接 → 列表 JSON → 正文與圖片 → 可選 Obsidian」收成一套 Agent 可執行的 CLI 約定,並圍繞 Cookie、降級與斷點續傳處理常見失敗路徑。若要在 Cursor 等客戶端啓用,可從 SkillHub 安裝座標 @user_9610c87f/zhihu-fetch-skill,並按倉庫 SKILL.md 配置依賴與工作區。

  • SkillHub API 地址:https://api.skillhub.cn/user_9610c87f/zhihu-fetch-skill
  • SkillHub 頁面:https://www.skillhub.cn/skills/user_9610c87f/zhihu-fetch-skill
  • Git 倉庫:https://github.com/handsomestWei/zhihu-fetch-skill
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜