Zhihu Article Scraper avatar

Zhihu Article Scraper

Pricing

Pay per event

Go to Apify Store
Zhihu Article Scraper

Zhihu Article Scraper

📝 Extract public Zhihu Zhuanlan articles by URL into clean text, Markdown and HTML, with authors, topics, images, timestamps, permissions and engagement metrics.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract complete public Zhihu Zhuanlan articles from known URLs.

Turn long-form Chinese content into clean HTML, plain text, Markdown, author metadata, topics, images, timestamps, and engagement metrics—without maintaining a browser or a Zhihu account.

Zhihu Article Scraper is built for repeatable research, monitoring, localization, and LLM data pipelines.

What does Zhihu Article Scraper do?

Give the Actor one or more public URLs such as:

https://zhuanlan.zhihu.com/p/2055333119083992479

For every valid article, the Actor:

  • 📝 extracts the title, excerpt, and full article;
  • 👤 captures author identity and profile metadata;
  • 🏷️ normalizes topics and images;
  • 📈 records votes, comments, favorites, and likes;
  • 🕐 converts publication and update times to ISO timestamps;
  • 🧹 returns sanitized HTML, readable text, and Markdown;
  • 🔗 preserves both canonical and submitted source URLs.

The result is a structured dataset ready for JSON, CSV, Excel, XML, RSS, or API export.

Who is it for?

Consumer intelligence teams

Track known Zhihu essays from brands, experts, and commentators.

Compare engagement and messaging over time.

Content and SEO researchers

Archive source articles and analyze topics, headings, links, and terminology.

Build repeatable content-gap or citation workflows.

Localization agencies

Export Chinese source text as Markdown or plain text for translation tools.

Keep author and source provenance beside each document.

LLM and RAG builders

Create structured document records for retrieval, classification, summarization, and embeddings.

Use contentText for simple pipelines or contentMarkdown when headings and links matter.

Social-listening operators

Schedule recurring runs for known public article URLs and send fresh snapshots downstream.

Why use this Zhihu article extractor?

  • No browser maintenance: extraction uses the public server-rendered article state.
  • No Zhihu credentials: the supported route is anonymous.
  • Three content formats: HTML, text, and Markdown are returned together.
  • Typed metadata: authors, topics, dates, and counts use stable fields.
  • Low concurrency: conservative defaults reduce rate-limit risk.
  • Fail-closed scope: Q&A and profile URLs are rejected instead of producing misleading data.
  • Apify integrations: connect datasets to webhooks, Make, Zapier, Google Sheets, or your own API.

Supported pages and scope

Supported:

  • public zhuanlan.zhihu.com/p/{numeric-id} article pages;
  • one URL or batches of known article URLs;
  • duplicate URL removal within a run.

Not supported in v1:

  • Zhihu question or answer pages;
  • keyword search;
  • user profiles;
  • hot lists;
  • column listing and pagination;
  • login-only, private, deleted, or restricted content.

This boundary keeps the product honest and predictable.

What data can you extract?

FieldDescription
articleIdNumeric Zhihu article ID
titleArticle title
urlCanonical article URL
authorIdZhihu author identifier
authorNameDisplay name
authorUrlPublic author URL
authorHeadlineAuthor headline or description
authorAvatarUrlAvatar image URL
excerptArticle excerpt
contentHtmlSanitized article HTML
contentTextWhitespace-normalized plain text
contentMarkdownMarkdown generated from the article body
imageUrlMain article image
imagesAll discovered article image URLs
topicsTopic IDs, names, and URLs
createdAtPublication time in ISO format
updatedAtLast update time in ISO format
voteupCountVote count
commentCountComment count
favoriteCountFavorite-list count
likedCountLike count when exposed
commentPermissionComment permission state
copyrightPermissionCopyright permission state
stateSource article state
statusSource article status
isVisibleVisibility flag when exposed
canCommentWhether comments are allowed
ipLocationIP/location label when publicly exposed
sourceUrlURL submitted by the user
scrapedAtExtraction timestamp

How to scrape Zhihu articles

  1. Open the Actor input page.
  2. Paste one or more public Zhuanlan article URLs into Zhihu article URLs.
  3. Keep Maximum concurrency at 2 or 3 for normal batches.
  4. Set Maximum articles to your desired cap.
  5. Leave proxy disabled unless direct requests are blocked from your region.
  6. Click Start.
  7. Export the dataset in your preferred format.

A prefilled one-article run is the cheapest way to validate your workflow.

Input configuration

startUrls

Required list of public article pages.

Each URL must use https://zhuanlan.zhihu.com/p/{numeric-id}.

Tracking query strings and fragments are normalized away.

maxItems

Maximum unique article records to save.

The default is 10; the Store prefill uses 3 to keep first runs inexpensive.

maxConcurrency

Number of parallel article requests.

Allowed range: 1–5.

Use 1–3 for stable recurring jobs.

proxyConfiguration

Optional Apify Proxy or custom proxy URLs.

Direct HTTP is used when this setting is disabled.

Example input

{
"startUrls": [
{ "url": "https://zhuanlan.zhihu.com/p/2055333119083992479" }
],
"maxItems": 10,
"maxConcurrency": 2,
"proxyConfiguration": {
"useApifyProxy": false
}
}

For recurring monitoring, keep the same URL list in an Apify Task and schedule it.

Example output

{
"articleId": "2055333119083992479",
"title": "2026“普通人”就业现状:这5大变化你要知道!",
"url": "https://zhuanlan.zhihu.com/p/2055333119083992479",
"authorName": "Example author",
"excerpt": "A public article excerpt",
"topics": [
{ "id": "19590199", "name": "就业", "url": "https://www.zhihu.com/api/v4/topics/19590199" }
],
"voteupCount": 0,
"commentCount": 0,
"favoriteCount": 0,
"contentText": "Complete normalized article text...",
"contentMarkdown": "## Complete article...",
"sourceUrl": "https://zhuanlan.zhihu.com/p/2055333119083992479",
"scrapedAt": "2026-07-24T04:00:00.000Z"
}

Actual authors, content, counts, and dates come from the source page.

How much does it cost to extract Zhihu articles?

The Actor uses pay-per-event pricing.

  • Run start: $0.005 per run.
  • Article extracted: BRONZE price $0.0005267 per saved article, with plan-based volume tiers.
  • Failed URLs do not trigger the article event.
  • Apify platform compute may apply according to your plan.

You can estimate a BRONZE run as $0.005 + saved articles × $0.0005267.

For example, 10 successfully extracted articles cost about $0.01027 before any plan-specific platform usage.

See the live pricing tab for the price applicable to your account tier.

Reliability and retries

Every article request has a 30-second timeout and up to three bounded attempts.

HTTP 403, 429, and server errors trigger a retry.

When a proxy configuration is present, retries can use a fresh proxy session.

A mixed batch can save valid articles and log warnings for failed URLs.

If no complete article is extracted, the run fails instead of returning an empty success.

Tips for stable recurring runs

  • Keep concurrency low.
  • Submit canonical Zhuanlan article URLs.
  • Remove deleted or private URLs from long-lived tasks.
  • Enable a proxy only after confirming direct access is blocked.
  • Split very large URL inventories into scheduled batches.
  • Monitor logs for new source-side restrictions.
  • Store immutable historical snapshots in a named dataset or external warehouse.

Export and integrations

Google Sheets

Use an Apify integration to append new article records to a research sheet.

Select title, authorName, topics, createdAt, counts, and url for a compact view.

Make and Zapier

Trigger a scenario when a run succeeds.

Send Markdown to translation, summarization, or editorial-review steps.

Webhooks

Attach a run-succeeded webhook and fetch dataset items from your backend.

This works well for scheduled watchlists.

Data warehouses

Export JSON or CSV to object storage, BigQuery, Snowflake, or a relational database.

Use articleId as the source identity and scrapedAt as the snapshot time.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/zhihu-article-scraper').call({
startUrls: [
{ url: 'https://zhuanlan.zhihu.com/p/2055333119083992479' }
],
maxItems: 10,
maxConcurrency: 2
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/zhihu-article-scraper").call(run_input={
"startUrls": [
{"url": "https://zhuanlan.zhihu.com/p/2055333119083992479"}
],
"maxItems": 10,
"maxConcurrency": 2,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

API usage with cURL

curl -X POST \
'https://api.apify.com/v2/acts/automation-lab~zhihu-article-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"startUrls": [{"url":"https://zhuanlan.zhihu.com/p/2055333119083992479"}],
"maxItems": 10,
"maxConcurrency": 2
}'

Poll the returned run ID, then read its default dataset.

Use with Apify MCP

Connect the Actor to Claude Code or another MCP client through Apify MCP.

Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com/?tools=automation-lab/zhihu-article-scraper"

Claude Desktop

Add this remote server in Settings → Developer → Edit Config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=automation-lab/zhihu-article-scraper"
}
}
}

Cursor

Open Settings → Tools & Integrations → MCP, add a remote HTTP server, and use:

https://mcp.apify.com/?tools=automation-lab/zhihu-article-scraper

VS Code

Open the Command Palette, choose MCP: Add Server, select HTTP, and enter the same Apify MCP URL.

Example prompts:

  • “Extract these three Zhihu articles and summarize their shared themes.”
  • “Return Markdown and author metadata for this Zhuanlan URL.”
  • “Compare votes and update dates across my monitored article list.”

Data quality notes

Counts are snapshots from the public page at extraction time.

Optional source fields can be null when Zhihu does not expose them.

Plain text intentionally collapses whitespace for downstream analysis.

Markdown preserves meaningful headings, links, lists, and images where possible.

HTML is sanitized and does not include executable page scripts.

Limitations

Zhihu can change its public page structure or apply regional rate limits.

The Actor cannot access login-only, private, deleted, or removed articles.

It does not discover article URLs for you.

It does not execute JavaScript or solve human verification challenges.

Engagement values can change after a run completes.

Public web data can still be subject to copyright, database rights, privacy law, contract terms, and local regulation.

Use the Actor only for data you are authorized to collect.

Do not republish copyrighted article bodies without an appropriate legal basis.

Minimize personal data, respect deletion requests, and follow Zhihu's applicable terms.

This information is general guidance, not legal advice.

Troubleshooting

Why did my URL fail validation?

Only public zhuanlan.zhihu.com/p/{numeric-id} article URLs are supported.

Question, answer, profile, search, and column-list URLs fail closed.

Why did the run return HTTP 403 or 429?

Reduce concurrency and try an Apify Proxy configuration appropriate for your lawful use case.

Avoid repeatedly retrying a restricted article.

Why did the run fail with no output?

The article may be private, deleted, incomplete, or blocked.

Review the log message for each submitted URL and test a known public article.

Why is an optional field null?

Zhihu does not expose every author, permission, or location field on every article.

The Actor preserves absence rather than inventing a value.

FAQ

Can I scrape a list of Zhihu search results?

No. This version accepts known public article URLs only.

Can I scrape questions and answers?

No. Q&A uses a different protected surface and is intentionally outside this Actor's scope.

Does it require cookies or a Zhihu account?

No for supported public article pages.

Can I obtain Markdown for RAG ingestion?

Yes. Use contentMarkdown, or use contentText for embedding pipelines that do not need structure.

Are duplicate URLs charged twice?

No. Canonical duplicates are removed within the run before fetching.

Can I schedule the Actor?

Yes. Save the input as an Apify Task and attach a schedule.

Explore other purpose-built tools from Automation Labs:

Use a related Actor only when its source and entity type match your workflow.

Start extracting Zhihu articles

Paste a public Zhuanlan article URL, run the prefilled example, and inspect the structured dataset.

For recurring work, save the configuration as a task and connect the resulting dataset to your research or AI pipeline.