Social media · Live on Apify

Zhihu Scraper: Question Answers, Votes and Authors

Paste a Zhihu (知乎) question link or ID. You get its public answers as a table, one row per answer. Each row has the text, author, upvotes, date and link.

About $2.70 for 1,000 results$0.0027 per result + $0.0008 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

typeanswer
questionId19805218
title哪些便宜好用的家用咖啡机值得推荐?

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: https://www.zhihu.com/question/19805218 in Question URLs or IDs. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Paste a Zhihu (知乎) question URL or ID and get its public answers as a table: full text, HTML, image links, author, upvotes, date and link. No login, cookies or API key.

Good for

  • You want to know what Chinese users think about a product, brand or topic, and you already have the question links.
  • You compare opinions across several Zhihu questions in one table.
  • You want answer text in your own research, translation or AI workflow.
  • You need a CSV or Excel file of answers without a Zhihu account.

Who uses it

Market researchers

See what Chinese users think about a product or brand.

Analysts

Compare opinions across several Zhihu questions in one table.

Translation and AI teams

Use answer text in your own research or AI workflow.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.0008Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.
Question checked$0.0005 (from $0.00035 on paid Apify plans)One valid question checked, including a question Zhihu does not return.
Answer$0.0027 (from $0.00189 on paid Apify plans)One public answer saved with its available text, HTML, images, author, votes and date.

Examples

  • One result: about $0.0035.
  • 1,000 results: about $2.70.
  • Every day 100 results, for 30 days: about $8.12 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 1,800 results.

Prices checked on 8 November 2026. See the current price on Apify.

Questions

Do I need a Zhihu account or cookies?

No. The tool reads only what Zhihu shows without a login.

Can I search Zhihu by keyword?

No. Find the question first, then paste its link.

Why are there fewer answers than on the website?

The site can show more to signed-in users. The tool saves what Zhihu returns without a login.

Are the answers translated?

No. You get the original text, usually in Chinese. contentVariant is original and sourceLanguage is zh.

Details

Step by step on Apify
  1. Open the Input tab. Keep the example question or paste your own URL or ID in Question URLs or IDs (box 1).
  2. Keep Maximum answers at 20 for a first test (box 2).
  3. Click Start.
  4. Open the Output tab when the run ends. Read the author, answer text, upvotes and date in the Answers table (box 4).
Use cases
TaskInputYou getKey fieldsNext step
Learn what users say about a producturls with one or more questionsAnswercontent, voteups, createdAtCSV or Excel for review
Find the answers people agree with mosturls, higher maxItemsAnswervoteups, content, urlSort by voteups in your sheet
Prepare Chinese text for translation or AI analysisurlsAnswercontent, contentHtml, sourceLanguageAPI or MCP
Collect image links from answersurlsAnswermedia, urlYour own review tool
Get a short summary in your team toolurls, deliveryConnector, deliveryTargetAnswer summaryauthor, content, urlSlack or Notion
Tips for better results
  • You must give question links or IDs. The tool does not search by keyword.
  • Set maxItems to the total number of answers to save across the questions.
  • Answer text is in the original language, usually Chinese.
Limits and good to know
  • No keyword search. You must give question URLs or IDs
  • Some questions need a login. Zhihu does not return every question without one. In our tests 19550225 and 20702054 gave no answers. The Actor does not use accounts or cookies, so it reports these questions as failed
  • Answer count can be lower than on the website. The Actor saves what Zhihu returns without a login. sourceAnswerCount is the number Zhihu reports. Zhihu's pages can overlap, so if a question comes up short the Actor reads it again, up to 2 more times, and charges only for new answers. A second read can double or triple the time for that question, and the timeout still stops the run with saved rows
  • Very large questions end early. Zhihu can stop listing answers before the total it reports. One question reporting 1,613 answers listed 1,122 without a login, and those runs took about 8 to 9 minutes. The run keeps those rows, ends as a success with the status partial and the reason PUBLIC_LIST_END, and you pay only for saved answers
  • Comment counts are often empty. Zhihu usually asks for a login for this number. In our tests about 1 answer in 7 had a count: 12 of 100 in one run and 9 of 60 in another. Comment text and replies are not collected
  • Not collected: full user profiles, follower counts, articles, number of saves, and changes over time
  • Media are links. Files are not downloaded, and links on Zhihu's servers can stop working
  • Speed. The Actor waits about 1 second between requests. We measured 100 answers in 19 to 82 seconds (the slowest run had connection failures), 1 to 2.5 minutes for 200 answers from 2 questions, and about 6 to 8.5 minutes for 1,000 answers. With the default 300 second timeout, plan for about 500 answers, or fewer if a question has to be read again or the connection fails. A connection failure in the middle of a question adds pauses of 10 and 30 seconds. If Zhihu rejects a page, the Actor asks for fewer answers and then tries once more after 10 seconds, so a question that ends this way takes about 15 seconds instead of 3. After four pauses of either kind with no answers saved in between, the Actor stops pausing. If about 4 minutes or 20 MB pass with no answers saved, the run stops with NO_ANSWERS_LIMIT, at any timeout, so a list of failing questions does not stall. Pages read again to fill gaps count too, so a very large question can rarely stop this way, and its saved rows stay

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "type": "answer",
  "questionId": "19805218",
  "title": "哪些便宜好用的家用咖啡机值得推荐?",
  "answerId": "2734473811",
  "author": "evanxu",
  "authorBio": "创业 | 咖啡爱好者 | 数码家居评测",
  "authorAvatarUrl": "https://pic1.zhimg.com/v2-41a177c2ccfe082635b8cb92b6cdea73_l.jpg?source=57bf9c9b",
  "content": "题主,不知道多便宜算便宜,比如100元不到的法压壶?…",
  "contentHtml": "<p>题主,不知道多便宜算便宜…</p>",
  "media": [
    { "type": "image", "url": "https://pic1.zhimg.com/v2-b4fbe06ef907d0a0d26af950ce363492_b.gif" }
  ],
  "voteups": 14,
  "downvotes": 0,
  "comments": null,
  "createdAt": "2023-01-06T13:02:02.000Z",
  "url": "https://www.zhihu.com/question/19805218/answer/2734473811",
  "source": "zhihu.com",
  "sourceUrl": "https://www.zhihu.com/tardis/landing/m/360/qus/19805218",
  "sourceLanguage": "zh",
  "contentVariant": "original",
  "sourceAnswerCount": 136,
  "fetchedAt": "2026-11-06T08:48:27.711Z",
  "detailStatus": "not_requested"
}

Use it from code

Actor ID: cliqtomedia/zhihu-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/zhihu-scraper").call(run_input={
    "urls": [
        "https://www.zhihu.com/question/19805218"
    ],
    "maxItems": 20
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~zhihu-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://www.zhihu.com/question/19805218"], "maxItems": 20}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/zhihu-scraper")
result = tool.invoke({"run_input": {"urls": ["https://www.zhihu.com/question/19805218"], "maxItems": 20}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (22)
FieldTypeMeaning
questionIdstringZhihu question ID.
answerIdstringZhihu answer ID, preserved as a string.
titlestringQuestion title.
authorstringPublic author name, or null when missing.
authorBiostringShort description the author shows on Zhihu, or null when missing.
authorAvatarUrlstringLink to the public author picture, or null when missing. The file is not downloaded.
contentstringAnswer text. Null for image-only answers or when the source provides no body.
contentHtmlstringAnswer HTML with active scripts and tracking images removed.
mediaarrayPublic image, audio and video URLs found in the answer HTML. Files are not downloaded.
voteupsintegerUpvotes reported by Zhihu.
downvotesintegerDownvotes as reported by Zhihu, or null when missing.
commentsintegerComment count, only if you turn on comment counts and Zhihu returns the number without a login. Null otherwise.
createdAtstringPublication time in UTC.
urlstringCanonical answer URL.
sourceUrlstringPublic representation used to read the answer.
fetchedAtstringCollection time in UTC.
sourcestringData source domain.
sourceLanguagestringLanguage of the original source representation.
contentVariantstringOriginal Zhihu content, not a translation.
sourceAnswerCountintegerAnswer count reported by the source.
typestringRecord type.
detailStatusstringComment count lookup: not_requested (option off), available, unavailable (Zhihu did not return it) or deadline (no time left).
Input settings (5)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Question URLs or IDs requiredurlsarray["https://www.zhihu.com/question/19805218"]
Maximum answersmaxItemsinteger20
Include comment countsincludeAnswerDetailsbooleanfalse
Send results to (optional)deliveryConnectorstring
Notion page or channel (optional)deliveryTargetstring

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure