# Zhihu Scraper (知乎) — Hot List, Columns, Answers (`bossless/zhihu-scraper`) Actor

Scrape Zhihu (知乎) with no login: the hot list (知乎热榜) with heat and answer counts, hot searches, search suggestions, and column (专栏) articles with full text. Add your own Zhihu cookie to also pull questions, answers, articles, search results and member profiles. Pay per result.

- **URL**: https://apify.com/bossless/zhihu-scraper.md
- **Developed by:** [Alexander Daskalov](https://apify.com/bossless) (community)
- **Categories:** Social media, News, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 article, answer, question or profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Zhihu Scraper (知乎)

**Zhihu Scraper extracts public data from Zhihu (知乎), China's largest Q\&A and long-form knowledge platform, with no browser, no proxy setup and no Zhihu account of your own.** Get the live **Zhihu hot list (知乎热榜)** with heat and answer counts, **hot searches (热搜)**, **search suggestions** for Chinese keyword research, and **column (专栏) articles with full text**. Add your own Zhihu cookie to also pull **questions with their answers**, **single articles**, **keyword search results** and **member profiles**. Export clean JSON, CSV or Excel, or call it as a Zhihu API.

Use it for China market research, trend tracking, content and topic research, Chinese keyword research, brand and KOL monitoring, and AI/LLM pipelines that need high-quality Chinese long-form text.

- 🔥 **Zhihu hot list (知乎热榜)**: ~30 trending questions with title, excerpt, heat (热度), answer count and link.
- 🔎 **Hot searches and search suggestions**: what Chinese users are searching for right now, and what they type after any keyword.
- 📚 **Column (专栏) articles with full text**: title, full text and HTML, votes, comments, dates and author. No login needed.
- 💬 **Questions, answers, search and profiles**: unlocked when you paste **your own** Zhihu cookie.

### What data can you scrape from Zhihu?

| Feature | Needs a cookie? | `type` in output |
|---|---|---|
| Hot list (知乎热榜) | No | `hotList` |
| Hot searches (热搜) | No | `hotSearch` |
| Search suggestions (autocomplete) | No | `suggestion` |
| Column info + column articles (full text) | No | `column`, `article` |
| Question + answers (full text) (beta) | **Yes** (your own) | `question`, `answer` |
| Single article by URL (beta) | **Yes** | `article` |
| Keyword search (beta) | **Yes** | `answer`, `article`, `question` |
| Member profile (beta) | **Yes** | `member` |

The **guest features work with no login at all.** Zhihu shows questions, answers, search and profiles only to logged-in visitors, so those features use a cookie you paste from *your own* browser session. The actor never logs in for you and never uses shared accounts.

> **Beta:** the cookie features are new. If they return nothing with a fresh cookie, please open an issue on the actor page and it will be fixed quickly. The guest features are stable.

### How much does it cost to scrape Zhihu?

Pay per result. There is no monthly fee and no proxy to configure.

| Event | Price (FREE/BRONZE) | Lower on paid plans |
|---|---|---|
| Article, answer, question, column or profile | **$0.0035** / result | down to $0.0025 |
| Hot-list item, hot search or suggestion | **$0.001** / item | down to $0.0006 |
| Actor start | $0.00005 / run | — |
| AI tags (optional) | **$0.002** / tagged item | down to $0.0015 |

You are charged only for results actually saved. The whole hot list (~30 items) costs about $0.03, and 1,000 full-text articles or answers cost about $3.50.

### AI tags: sentiment, topics and an English summary (optional)

Turn on **AI tags** (`aiEnrichment`) and every hot-list question, article, answer and question gets an `ai` field: sentiment (positive, neutral, negative or mixed) with a score from -1 to 1, topic labels, named entities, and a one-sentence English summary. It's useful for monitoring, research and dashboards when your team doesn't read Chinese. It's off by default and costs nothing unless enabled. Free-plan runs include a 3-item AI trial; the rest of the results are saved without AI fields.

Real output (a hot-list question, 14 October 2026; excerpt shortened):

```json
{
 "type": "hotList",
 "rank": 1,
 "title": "老人凌晨下地干活被气枪击中身亡，持气枪打猎合法吗？案件还有哪些疑点待查？涉事人员将承担什么法律责任？",
 "excerpt": "「天气预报说有雨，他想抢着把活干完，第二天跟子女们团聚过中秋。」10 月 13 日，湖北荆门的成先生向媒体反映，他的弟弟…",
 "heatValue": 4540000,
 "ai": {
  "sentiment": "negative",
  "sentimentScore": -0.9,
  "topics": [
   "Crime",
   "Public Safety",
   "Investigation",
   "Rural Life"
  ],
  "entities": [
   "成某",
   "荆门警方"
  ],
  "summaryEn": "A 64-year-old man was shot and killed by an air gun while working in his field at night, and the police are currently investigating the incident."
 }
}
```

### How fast is it?

A run that fetches the hot list, hot searches, one keyword's suggestions and 5 column articles finishes in about 45 seconds on the default 256 MB memory.

### How to scrape Zhihu

1. Click **Try for free** and keep the example input. It fetches the hot list and 5 articles from one column.
2. Add more column URLs, turn on hot searches, or add keywords for search suggestions.
3. For questions, answers, single articles, search or profiles, paste your own `zhihuCookie` (see below).
4. Download the results as JSON, CSV or Excel, or read them through the API.

#### Input example

```json
{
  "includeHotList": true,
  "includeHotSearches": true,
  "suggestionQueries": ["人工智能"],
  "columnUrls": ["https://zhuanlan.zhihu.com/c_1034016963944755200"],
  "maxArticlesPerColumn": 20,
  "questionUrls": [],
  "searchQueries": [],
  "zhihuCookie": ""
}
```

| Field | Meaning |
|---|---|
| `includeHotList` | Fetch the live hot list (知乎热榜). |
| `includeHotSearches` | Fetch the trending search terms. |
| `suggestionQueries` | Keywords to get search suggestions for. |
| `columnUrls` / `maxArticlesPerColumn` | Columns (专栏) to scrape, and how many articles from each. |
| `questionUrls` / `maxAnswersPerQuestion` | Questions to scrape with their answers (needs `zhihuCookie`). |
| `articleUrls` | Single articles (needs `zhihuCookie`; column articles don't). |
| `searchQueries` / `maxSearchResults` | Keywords to search (needs `zhihuCookie`). |
| `memberUrls` | User profiles (needs `zhihuCookie`). |
| `zhihuCookie` | Your own logged-in cookie (optional, secret). |

### Output examples

A hot-list item:

```json
{
  "type": "hotList", "rank": 1, "title": "雷波县教师被安排与「耻辱」二字合影…",
  "heat": "552 万热度", "heatValue": 5520000, "answerCount": 151,
  "questionId": "2093376100948599059", "url": "https://www.zhihu.com/question/2093376100948599059"
}
```

A column article:

```json
{
  "type": "article", "articleId": "625692987", "url": "https://zhuanlan.zhihu.com/p/625692987",
  "title": "[翻译] 《幽灵诡计》GHOST STAFF 座谈会", "text": "本文来自《幽灵诡计》官方攻略设定集…",
  "voteupCount": 50, "commentCount": 4, "createdAt": "2023-04-28T08:58:13+00:00",
  "authorName": "平昭·南宫司卿", "origin": "column:c_1034016963944755200"
}
```

A search suggestion:

```json
{ "type": "suggestion", "seed": "人工智能", "rank": 1, "query": "人工智能专业" }
```

Every record has a `type` field, so you can filter one dataset by record type. The dataset also has a "full text" view for articles and answers.

### Use Zhihu Scraper with AI agents (MCP)

This actor is available on the Apify MCP server, so assistants that support MCP can call it as a tool:

```
https://mcp.apify.com?tools=bossless/zhihu-scraper
```

Ask your agent to "get the Zhihu hot list" or "pull the latest articles from this Zhihu column", and it will run this actor and read back the results.

### Use the Zhihu API from code

```bash
curl -X POST "https://api.apify.com/v2/acts/bossless~zhihu-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"includeHotList": true}'
```

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("bossless/zhihu-scraper").call(run_input={"includeHotList": True})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

### How to get your Zhihu cookie (for questions, answers, search and profiles)

1. Log in to `zhihu.com` in your browser.
2. Open DevTools → Network, reload, and click any `zhihu.com` request.
3. Copy the full `Cookie:` request header (it must contain `z_c0`) and paste it into `zhihuCookie`.

Your cookie is stored as secret input. Zhihu rate-limits heavy use of a single account, so keep runs moderate.

### FAQ

**Do I need a proxy?** No. A China residential proxy is built in.

**Is a cookie required?** Only for questions, answers, single articles, search and profiles. The hot list, hot searches, suggestions and column articles need nothing.

**Can I get full article text without a cookie?** Yes. Articles inside a column (专栏) come with full text and HTML as a guest. Add the column URL to `columnUrls`.

**Can I track the Zhihu hot list over time?** Yes. Use an Apify schedule (for example hourly) with `includeHotList` on, and each run saves a timestamped snapshot.

**Why might questions or search return nothing?** You either left `zhihuCookie` empty (they are then skipped with a warning), or the cookie expired. Copy a fresh one.

**Is this legal?** It collects publicly visible data and, for the cookie features, data your own account can already see. You are responsible for complying with Zhihu's terms and applicable law.

**Is this an official Zhihu product?** No. This is an independent tool and is not affiliated with or endorsed by Zhihu.

### Ready-made Zhihu tasks

One-click presets for common jobs. Open one, change the input if you like, and run it:

- [Zhihu Hot List (知乎热榜) in English with AI](https://apify.com/bossless/zhihu-scraper/examples/zhihu-hot-list-english): every trending question with an English summary and sentiment.
- [Zhihu Hot List Tracker (知乎热榜)](https://apify.com/bossless/zhihu-scraper/examples/zhihu-hot-list-tracker): trending questions with heat and answer counts.
- [Zhihu Hot Searches (知乎热搜)](https://apify.com/bossless/zhihu-scraper/examples/zhihu-hot-searches): what Chinese users are searching for right now.
- [Zhihu Search Suggestions for Chinese Keyword Research](https://apify.com/bossless/zhihu-scraper/examples/zhihu-keyword-suggestions): long-tail autocomplete for any keyword.
- [Zhihu Column (专栏) Article Exporter](https://apify.com/bossless/zhihu-scraper/examples/zhihu-column-article-exporter): full-text articles from any column.

### More China data scrapers

- [Bilibili Scraper (B站 / 哔哩哔哩)](https://apify.com/bossless/bilibili-scraper): videos, danmaku, comments, trending and creators.
- [Weibo Scraper (微博)](https://apify.com/bossless/weibo-scraper): hot search, profiles, post search and timelines.
- [Chinese Video Transcriber](https://apify.com/bossless/chinese-video-transcriber): Bilibili videos to text, English subtitles and SRT with AI.
- [China Hot Search in English](https://apify.com/bossless/china-hot-search): Weibo, Douyin, Baidu, Zhihu and Bilibili trending topics with English summaries.

***

#### 知乎数据采集器（知乎爬虫 / 知乎热榜 API / 知乎专栏导出）

无需登录即可抓取知乎热榜（热度、回答数）、知乎热搜、搜索联想词，以及知乎专栏文章全文。粘贴你自己的知乎 Cookie 后，还可抓取问题及回答全文、单篇文章、关键词搜索结果和用户资料。结果可导出为 JSON、CSV 或 Excel，按条计费。

# Actor input Schema

## `includeHotList` (type: `boolean`):

Fetch the current Zhihu hot list: about 30 trending questions with title, excerpt, heat (热度), answer count and link. Works without a cookie.

## `includeHotSearches` (type: `boolean`):

Fetch the trending search terms shown in the Zhihu search box. Works without a cookie.

## `suggestionQueries` (type: `array`):

For each keyword, save Zhihu's search autocomplete suggestions (what Chinese users type after it). Useful for Chinese keyword research. Works without a cookie.

## `columnUrls` (type: `array`):

Zhihu columns to scrape, as URLs (https://zhuanlan.zhihu.com/c_1034016963944755200) or IDs. Saves the column info plus its articles with full text, votes and comment counts. Works without a cookie.

## `maxArticlesPerColumn` (type: `integer`):

How many articles to save from each column (newest first).

## `questionUrls` (type: `array`):

Zhihu questions (https://www.zhihu.com/question/19550225). Saves the question and its top answers with full text. Requires zhihuCookie; skipped with a warning if none is supplied.

## `maxAnswersPerQuestion` (type: `integer`):

How many answers to save per question (Zhihu's default ranking).

## `articleUrls` (type: `array`):

Single Zhihu articles (https://zhuanlan.zhihu.com/p/625692987). Requires zhihuCookie. Tip: articles inside a column can be scraped without a cookie via Column URLs.

## `searchQueries` (type: `array`):

Keywords to search Zhihu for; saves matching answers, articles and questions. Requires zhihuCookie.

## `maxSearchResults` (type: `integer`):

How many search results to save per keyword.

## `memberUrls` (type: `array`):

Zhihu users (https://www.zhihu.com/people/zhang-jia-wei). Saves followers, answer and article counts, votes and headline. Requires zhihuCookie.

## `zhihuCookie` (type: `string`):

Paste the Cookie header from your own logged-in zhihu.com browser session (it must contain z_c0) to unlock questions, answers, articles, search and member profiles. Leave empty to use only the guest features. You supply and own this cookie; it is stored as secret input.

## `aiEnrichment` (type: `boolean`):

Adds an `ai` field to each hot-list question, article, answer and question: sentiment and score, topic labels, named entities and a one-sentence English summary. Charged once per tagged item. Free-plan runs include a 3-item AI trial.

## Actor input object example

```json
{
  "includeHotList": true,
  "includeHotSearches": false,
  "suggestionQueries": [],
  "columnUrls": [
    "https://zhuanlan.zhihu.com/c_1034016963944755200"
  ],
  "maxArticlesPerColumn": 5,
  "questionUrls": [],
  "maxAnswersPerQuestion": 20,
  "articleUrls": [],
  "searchQueries": [],
  "maxSearchResults": 40,
  "memberUrls": [],
  "aiEnrichment": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "suggestionQueries": [],
    "columnUrls": [
        "https://zhuanlan.zhihu.com/c_1034016963944755200"
    ],
    "maxArticlesPerColumn": 5,
    "questionUrls": [],
    "articleUrls": [],
    "searchQueries": [],
    "memberUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("bossless/zhihu-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "suggestionQueries": [],
    "columnUrls": ["https://zhuanlan.zhihu.com/c_1034016963944755200"],
    "maxArticlesPerColumn": 5,
    "questionUrls": [],
    "articleUrls": [],
    "searchQueries": [],
    "memberUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("bossless/zhihu-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "suggestionQueries": [],
  "columnUrls": [
    "https://zhuanlan.zhihu.com/c_1034016963944755200"
  ],
  "maxArticlesPerColumn": 5,
  "questionUrls": [],
  "articleUrls": [],
  "searchQueries": [],
  "memberUrls": []
}' |
apify call bossless/zhihu-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bossless/zhihu-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Iw3ARfbSc4jVM2mx5/builds/AaJ1gEVQF6SmIEKw6/openapi.json
