知乎内容选题助手
一键抓取知乎热榜、推荐问题、邀请回答三项核心数据,自动整理为可检索的本地数据库,帮助内容创作者快速发现选题、跟踪领域热点、了解读者关注方向。
全程本地运行,不依赖任何第三方 API。数据存于 SQLite 数据库,可随时查询、搜索、导出。
5 分钟快速上手
第一次使用,只需三步:
# 第1步: 登录知乎(Edge 浏览器),然后关闭浏览器
# 第2步: 自动提取 Cookie
node scripts/auto_cookie.js --headless
# 第3步: 一键采集全部数据
python scripts/save_to_db.py all
# 完成!查看可视化报告
python scripts/generate_html.py
# 用浏览器打开 data/index.html
如果第2步提示 "未检测到登录态",说明 Edge 中没有知乎登录记录。打开 Edge 访问 https://www.zhihu.com 扫码登录一次,再重新运行即可。
以后每天只需运行第3步一条命令,就能获取最新数据。
适用人群
- 社媒运营:追踪行业热点,策划知乎内容矩阵
- 博主 / KOL:发现高关注度问题,定位写回答和写文章的方向
- 领域写作者:了解自己擅长领域的读者在关注什么
- 知乎新手:快速了解平台热点分布,找到合适的答题切入点
功能
获取实时热搜(热榜)
知乎全站热榜,包含排名、热度值、内容摘要。不需要登录:
python scripts/save_to_db.py hot
获取推荐问题
知乎创作者中心为你的账号智能推荐的答题机会,包含浏览数、回答数、关注数、推荐理由。需要登录:
python scripts/save_to_db.py recommend
获取邀请回答
别人直接邀请你回答的问题列表。需要登录:
python scripts/save_to_db.py invited
一键全部采集
python scripts/save_to_db.py all
# 依次执行: hot(50条) → recommend(100条) → invited(100条)
生成可视化报告
python scripts/generate_html.py
用浏览器打开 data/index.html:
- 🔥 热榜:日期筛选 + 关键词搜索 + 热度过滤,点击卡片直接跳转到知乎
- 💬 问题列表:按来源筛选(推荐/邀请)+ 搜索 + 按关注数排序
- 📋 抓取日志:每次抓取的详细记录
数据存储结构
所有数据存储在 data/zhihu.db(SQLite)中,三张核心表:
articles 表(热榜)
| 字段 | 说明 |
|---|---|
rank |
热榜排名 (1-30) |
title |
标题 |
url |
知乎链接 |
heat |
热度值 |
summary |
内容摘要 |
fetch_date |
抓取日期 |
questions 表(推荐/邀请问题)
| 字段 | 说明 |
|---|---|
qid |
知乎问题 ID |
title |
问题标题 |
url |
问题链接 |
answer_count |
已有回答数 |
follower_count |
关注数 |
view_count |
浏览数 |
source |
recommend(推荐)/ invited(邀请) |
recommend_reason |
推荐理由 |
fetch_date |
抓取日期 |
fetch_logs 表(抓取日志)
记录每次抓取的时间、来源、新增/更新条数。
如何查询和搜索
命令行
# 今日热榜
python scripts/query.py today
# 指定日期
python scripts/query.py date 2026-06-26
# 推荐问题
python scripts/query.py questions recommend
# 邀请回答
python scripts/query.py questions invited
可视化面板
打开 data/index.html,支持按日期筛选、关键词搜索、来源过滤。
直接查数据库
sqlite3 data/zhihu.db
# 按关键词搜热榜
SELECT title, rank, heat FROM articles
WHERE title LIKE '%AI%' AND fetch_date='2026-06-26'
ORDER BY rank;
# 搜高关注度推荐问题
SELECT title, follower_count, answer_count, recommend_reason
FROM questions
WHERE source='recommend' AND fetch_date='2026-06-26'
ORDER BY follower_count DESC LIMIT 20;
Cookie 认证
推荐和邀请数据需要知乎登录态。Cookie 保存在 config/fallback-sources.json(仅本地,不上传任何地方)。
方式一:自动获取(推荐)
从 Edge 浏览器配置文件中自动提取,无需手动操作:
# 1. 关闭所有 Edge 窗口
# 2. 运行自动提取
node scripts/auto_cookie.js --headless
脚本会自动检测登录状态。如果提示未登录 → 打开 Edge 访问知乎扫码登录一次即可。登录一次后,后续提取都是自动的。
方式二:手动复制(备用)
自动提取失败时,手动从浏览器 Network 面板复制:
> 1. 打开 https://www.zhihu.com,确认已登录
> 2. 按 F12 → 点击 Network(网络) 标签
> 3. 按 F5 刷新
> 4. 点一个 www.zhihu.com 开头的请求
> 5. 右侧 Request Headers → 找到 Cookie: 行
> 6. 双击值 → Ctrl+A → Ctrl+C
> 7. 运行 python scripts/save_cookie.py "<粘贴内容>"
遇到错误怎么办
提示 "未检测到登录态" 或采集数据为空
→ 你的 Cookie 过期了。重新运行 node scripts/auto_cookie.js --headless,如果 Edge 中也退登了,先打开知乎网页重新扫码登录。
采集推荐/邀请时提示 401 错误
→ 同样是 Cookie 过期,按上一条处理。
Edge 浏览器提示 "browser already running"
→ 后台有 Edge 残留进程,运行 taskkill /F /IM msedge.exe 关闭,再重试。
网络超时 / 抓取失败
→ 知乎接口偶发波动,重试一次即可。工具会自动重试最多2次。
采集太频繁会不会被封
→ 工具内置了 2 秒间隔的请求频率限制,正常使用不会被封。如果短时间内反复大量采集(如 1 分钟内跑 5 次 all 命令),建议间隔 5 分钟以上。
常见问题 FAQ
Cookie 多久过期?
一般 7-30 天,取决于知乎的策略和你的登录频率。过期后推荐和邀请数据无法采集(热榜不受影响),重新提取即可。
热榜不需要登录,为什么还要配置 Cookie?
热榜确实不需要登录。但如果只采集热榜,可以完全跳过 Cookie 配置这一步。推荐问题和邀请回答才需要登录态。
可以同时登录多个知乎账号吗?
工具默认读取 Edge 浏览器的 Profile,Edge 中登录哪个账号就采集哪个账号的数据。想换账号的话,在 Edge 中切换账号后重新运行 Cookie 提取即可。
支持其他浏览器吗(Chrome/Firefox)?
目前仅支持 Edge。如果你的知乎在 Chrome 中登录,可以先登录到 Edge(扫码很快),然后再用本工具。
怎么把数据导出到 Excel?
# 导出热榜到 CSV
sqlite3 -header -csv data/zhihu.db "SELECT rank, title, heat, fetch_date FROM articles WHERE fetch_date='$(date +%Y-%m-%d)'" > hot.csv
# 导出推荐问题
sqlite3 -header -csv data/zhihu.db "SELECT title, follower_count, answer_count, recommend_reason FROM questions WHERE source='recommend' AND fetch_date='$(date +%Y-%m-%d)'" > recommend.csv
用 Excel 直接打开 CSV 文件即可。
能定时自动采集吗?
可以配合系统定时任务:
- Windows: 用"任务计划程序"定时运行 python scripts/save_to_db.py all
- Mac/Linux: 用 crontab,例如每天早上 9 点执行
项目结构
zhihu-fetcher/
├── SKILL.md # 本文档
├── config/
│ └── fallback-sources.json # Cookie 配置(不入 git)
├── data/
│ ├── zhihu.db # SQLite 数据库
│ └── index.html # 可视化数据面板
├── scripts/
│ ├── save_to_db.py # 数据采集主入口
│ ├── generate_html.py # HTML 报告生成
│ ├── query.py # 命令行查询工具
│ ├── auto_cookie.js # 自动 Cookie 提取
│ ├── save_cookie.py # 手动 Cookie 保存
│ └── db.py # 数据库操作
└── snippets/
├── fetch-hot.js # 热榜抓取
└── fetch-featured.js # 推荐/邀请抓取
安装要求
- Python 3.8+
- Node.js 18+(Cookie 自动提取用)
- Edge 浏览器(读取登录态)
无需注册任何第三方 API,无需付费。