知乎抓取.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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye