zhihu

Interact with Zhihu (zhihu.com) — browse hot questions, read answers, search content, view topics, check user profiles. Use this skill whenever the user mentions Zhihu, 知乎, zhihu.com, wants to browse

SKILL.md

GitHub

Zhihu

Browse, search, read, and interact with Zhihu — China's largest Q&A platform.

Skill Directory

<SKILL_DIR> is the directory containing this SKILL.md file. Determine it ONCE at the start and reuse it.

Setup (run FIRST — every time, before any operation)

You MUST complete this setup before running any script. Do NOT skip this step.

sig status zhihu 2>&1

Check the JSON output fields configured and valid:

  • configured: false → run Provider Setup below. Do NOT proceed without completing it.
  • valid: false (but configured: true) → run sig login zhihu, then re-check.
  • valid: true → detect proxy (see below), then execute the user's request.

Provider Setup

  1. Read <SKILL_DIR>/references/provider-config.yaml
  2. Append the provider block to ~/.sig/config.yaml under providers:
  3. Ask the user: "Do you need a proxy to access this site?" — if yes, add networkProxy: <url> under the provider in config.yaml
  4. Run sig login zhihu (with --network-proxy <url> if proxy was specified)
  5. Verify: run sig status zhihu again — must show valid: true before proceeding

Proxy Detection (after provider is valid)

grep -A15 "^\s*zhihu:" ~/.sig/config.yaml | grep networkProxy | awk '{print $2}'

If this outputs a URL, prefix ALL python3 commands with HTTPS_PROXY=<url> HTTP_PROXY=<url>. If using socks5, convert to socks5h for python (e.g. socks5://... → socks5h://...). If empty, no proxy needed.

Running Scripts

All scripts require setup to be completed first (see above).

All operations — use sig run to inject cookie (required for all Zhihu endpoints):

sig run zhihu -- bash -c 'python3 <SKILL_DIR>/scripts/zhihu_hot.py --cookie "$SIG_ZHIHU_COOKIE" --limit 10'

Env var: SIG_ZHIHU_COOKIE

On auth error (401/403): run sig login zhihu automatically (no user prompt), then retry.

Scripts Reference

All scripts are in this skill's scripts/ directory. Run via Bash tool.

Read Operations

Script Purpose Auth
zhihu_hot.py Hot list (知乎热榜) Required
zhihu_question.py Question answers + info Required
zhihu_answer.py Single answer detail Required
zhihu_search.py Search questions/topics/people Required
zhihu_member.py User profile + answers Required
zhihu_topic.py Search topics by keyword Required

zhihu_hot.py

--cookie COOKIE       Zhihu session cookie (required)
--limit N             Max items (default: 50)

zhihu_question.py

--cookie COOKIE       Zhihu session cookie (required)
--id ID               Question ID (required)
--answers-limit N     Max answers to fetch (default: 10)
--sort SORT           Sort answers: "default" or "created" (default: "default")

Note: Question title and ID are extracted from the answers endpoint since Zhihu's question detail API is protected by anti-crawler measures.

zhihu_answer.py

--cookie COOKIE       Zhihu session cookie (required)
--id ID               Answer ID (required)

zhihu_search.py

--cookie COOKIE       Zhihu session cookie (required)
--query TEXT          Search query (required)
--type TYPE           Search type: "general", "topic", or "people" (default: "general")
--limit N             Max results (default: 20)

zhihu_member.py

--cookie COOKIE       Zhihu session cookie (required)
--url-token NAME      Member URL token (required)
--include-answers     Also fetch member's recent answers (flag)

zhihu_topic.py

--cookie COOKIE       Zhihu session cookie (required)
--query TEXT          Topic search query (required)
--limit N             Max results (default: 10)

Note: Direct topic detail API is protected by anti-crawler. This script searches topics by keyword instead.

Key Concepts

Questions — The core unit on Zhihu. Each question has a title, detail, and a list of answers. Found in URLs like zhihu.com/question/12345. Get from hot list or search results, then use with zhihu_question.py.

Answers — Responses to questions, ranked by votes. Each answer has content, vote count, and author info. Use zhihu_answer.py to fetch a single answer by ID.

Hot List (知乎热榜) — Zhihu's trending questions, ranked by heat score. Use zhihu_hot.py to browse.

Topics — Zhihu organizes content into topics (like tags). Examples: AI, programming, science. Use zhihu_topic.py to search topics by keyword.

Members — User profiles identified by url_token (found in URLs like zhihu.com/people/zhang-san). Use zhihu_member.py to view profile and answers.

Search — Zhihu supports searching across questions, topics, and people. Use zhihu_search.py with the --type flag to filter.

Error Handling

Error Cause Fix
401 Unauthorized Session expired / no cookie Auto-run sig login (no user prompt needed), retry
403 Forbidden Anti-crawler or rate limit Wait and retry, or check cookie
404 Not Found Invalid ID Check question/answer ID
RATE_LIMITED Too many requests Wait and retry

Workflow Examples

Browse hot questions

  1. sig run zhihu -- bash -c 'python3 <SKILL_DIR>/scripts/zhihu_hot.py --cookie "$SIG_ZHIHU_COOKIE" --limit 10'

Read a question and its answers

  1. sig run zhihu -- bash -c 'python3 <SKILL_DIR>/scripts/zhihu_question.py --cookie "$SIG_ZHIHU_COOKIE" --id 20010554 --answers-limit 5'

Search for content

  1. sig run zhihu -- bash -c 'python3 <SKILL_DIR>/scripts/zhihu_search.py --cookie "$SIG_ZHIHU_COOKIE" --query "machine learning" --type general --limit 10'

View a user profile

  1. sig run zhihu -- bash -c 'python3 <SKILL_DIR>/scripts/zhihu_member.py --cookie "$SIG_ZHIHU_COOKIE" --url-token zhang-san --include-answers'

Search topics

  1. sig run zhihu -- bash -c 'python3 <SKILL_DIR>/scripts/zhihu_topic.py --cookie "$SIG_ZHIHU_COOKIE" --query "Python" --limit 5'