China Social Data: WeChat, Weibo, Bilibili, Douban

Lets an agent research Chinese social platforms without a login or cookies: WeChat Official Account articles by keyword; Weibo keyword posts, hot search, comments and profiles; Bilibili video search, stats, comments, danmaku summaries and creator profiles; Douban movie, TV and book ratings, comments and reviews. Compact JSON with original Chinese text. Honest limits: no-login search is shallow, and WeChat full-article text can hit a captcha, so search rows are the reliable part. Apify hosted MCP server; auth via OAuth or Apify token.

Barındırılan MCP Sunucusu

npx add-mcp 'https://mcp.apify.com?tools=dheerajitbhu/wechat-articles-scraper,dheerajitbhu/weibo-scraper,dheerajitbhu/bilibili-scraper,dheerajitbhu/douban-scraper'

Claude Code, Codex, Cursor ve daha fazlasına kurulur

Dokümantasyon

WeChat Official Account Articles Scraper (微信公众号文章) (dheerajitbhu/wechat-articles-scraper) Actor

Search public WeChat Official Account articles (微信公众号) by keyword. Results are relevance-ranked, about 100 per keyword, not a full account archive. Date filters apply after fetch. Titles, accounts, dates, and optional full text for monitoring or RAG.

Pricing

from $0.43 / 1,000 search results

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 section below.

Each client library has reference documentation the quickstart does not restate: JavaScript/TypeScript (npm install apify-client) and Python (pip install apify-client).

README

WeChat Official Account Articles Scraper (微信公众号文章)

Search public WeChat Official Account articles (微信公众号文章) by keyword and export titles, summaries, account names, publish times, cover images and, optionally, the full article text. Results are relevance-ranked, about 100 articles per keyword — not a date-sorted archive of one account. publishedAfter drops older rows after that fetch; it does not ask the source for a date range. No WeChat account, login, or cookie.

Use the rows for brand monitoring or RAG. $0.50 per 1,000 search results, and the first 20 search rows are free (search runs with maxResults 50 or below). Full articles cost $5 per 1,000.

中文简介:按关键词采集微信公众号文章,无需微信账号、无需登录。支持关键词搜索(每个关键词最多约 100 条),可选抓取文章全文、图片、作者、公众号 ID(gh_)、微信号、是否原创。按条计费:搜索结果每 1000 条 0.5 美元(搜索模式且 maxResults ≤ 50 时,前 20 条免费),全文每 1000 篇 5 美元。

Looking for a WeChat article API? WeChat has no public article search API. This actor turns public Official Account articles into structured data you can export or feed to AI.

For AI agents

Call this actor through the Apify MCP server. maxChargeUsd is this actor's cap. MCP callOptions.maxTotalChargeUsd is a separate platform cap; set both before a paid call. Do not use mode: "selftest".

Search is relevance-ranked public search, about 100 hits per keyword, not an exhaustive or date-sorted account history. publishedAfter (YYYY-MM-DD) filters rows already fetched. Articles that never appear in those results are not returned, and skipped rows are not billed.

List prices: run start $0.001, search row $0.0005, full article $0.005. The first 20 search rows in a search run with maxResults ≤ 50 are free (one free sample per user per 24 hours on Apify), so a first 5-row search costs $0.001. After the sample, five search rows are about $0.0035 and five full articles about $0.026.

outputFormat: "compact" also writes key OUTPUT_COMPACT (columnar-v1: columns, missing, rows). A cell equal to missing was absent. The dataset is the row fallback. Same rows, same price.

Search:

{ "mode": "search", "searchQueries": ["人工智能"], "maxResults": 5, "maxChargeUsd": 1 }

Fields: type article, detail search, title, summary, accountName, publishedAt, coverUrl, sogouUrl.

Search, then keep rows on or after a date (still relevance-ranked, then filtered):

{ "mode": "search", "searchQueries": ["新能源汽车"], "maxResults": 5, "publishedAfter": "2026-01-01", "fetchFullArticle": true, "maxChargeUsd": 1 }

Full fields add contentText, charCount, author, url, accountId, isOriginal.

One known article:

{ "mode": "article", "articleUrls": ["https://mp.weixin.qq.com/s/example"], "maxChargeUsd": 1 }

One full-article row at $0.005 plus the $0.001 run start.

Try it in one click

The input form on this page is already prefilled with the example below — press Start and it runs as-is.

{ "mode": "search", "searchQueries": ["人工智能"], "maxResults": 10, "maxChargeUsd": 0.5 }

What you get:

  • Up to 10 "人工智能" (AI) WeChat Official Account articles with title, summary, account name, publish time and cover image.
  • About 10 rows. They are inside the free sample, so your first run costs the $0.001 run-start fee. After the sample, search rows are $0.0005 each.
  • Turn on fetchFullArticle for the full text, images and author, at $0.005/row instead.

Keep it running. For brand or topic monitoring, save this input as a Task and add a daily Schedule. publishedAfter only drops older rows from the relevance-ranked results already fetched — it does not page an account by date. Details under Run it on a schedule.

Why WeChat article data matters

  • Scale: Weixin and WeChat had 1,439 million combined monthly active users on June 30, 2026 (Tencent Q2 2026 results).
  • What it's used for: Official Accounts (公众号) are where Chinese brands, media, government bodies and analysts publish long-form content. It's China's main publishing layer, and most of it sits inside the app.
  • For brands and PR teams: see how your brand and competitors are covered, and which accounts write about your category.
  • For market and policy researchers: collect industry commentary, announcements and analysis by keyword.
  • For AI / LLM teams: clean, long-form Chinese articles with titles, authors and dates, well suited to RAG, summarisation and training-data curation.

What WeChat article data you get

OptionRow contentPrice
Search (default)title, summary, account name, publish time, cover, search link$0.0005 per row ($0.50 per 1,000)
fetchFullArticle: truethe above plus full text (contentText), image URLs, author, accountId (gh_…), accountAlias (WeChat ID), isOriginal, article URL, biz/mid/idx$0.005 per row
article modefull article for each mp.weixin.qq.com/s/... link you give$0.005 per row

Each article is billed once, at one of the two prices. If an article can't be opened (deleted, removed or expired), you get it as a search row at the search price and a contentError field. There's also a $0.001 run-start fee. maxChargeUsd (default $5) stops the run before it goes over.

Apify personal-plan discounts apply automatically to search rows: Bronze 5% ($0.475/1k), Silver 10% ($0.45/1k), Gold / Platinum / Diamond 15% ($0.425/1k). The Store headline shows your plan’s rate; the table above is the list rate.

Try without paying for rows: the first 20 search rows are free when mode is search and maxResults is 50 or below. Full-article rows and article mode are billed from the first row. On Apify, one free sample per user per 24 hours. If the platform does not provide a user id, the first 20 search rows of each qualifying run are free; heavy use still pays. Run-start is $0.001.

Works on Apify’s Free plan — $5/mo platform usage, no credit card required to try.

Input examples

{ "mode": "search", "searchQueries": ["新能源汽车", "跨境电商"], "maxResults": 50 }
{ "mode": "search", "searchQueries": ["咖啡"], "maxResults": 20, "fetchFullArticle": true, "publishedAfter": "2026-01-01" }
{ "mode": "article", "articleUrls": ["https://mp.weixin.qq.com/s/your-article-id"] }

Output example (real row, 2026-10-18, text shortened)

{
  "type": "article", "detail": "full",
  "title": "咖啡自由后,我们离“瑰夏自由”还有多远?",
  "summary": "咖啡豆品种的天花板是什么?“瑰夏”是最没有争议的答案之一.2004年,一支瑰夏品种咖啡豆凭借迷人的花香、柑橘和莓果风味,...",
  "accountName": "中国新闻周刊", "accountId": "gh_a7bbb71d655c", "accountAlias": "chinanewsweekly",
  "author": "肖皖璇", "publishedAt": "2023-06-13T14:00:00+00:00", "isOriginal": false,
  "coverUrl": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/Zibeuu43K6ejPZPkszJtrgWb6yaDTGNpvNJSTrYUicgk0VZoHrLy1VBuX2dpoLDnures4wmozuqrc2NhIGZPApOQ/0?wx_fmt=jpeg",
  "url": "https://mp.weixin.qq.com/s?src=11&timestamp=1792340947&ver=7034&signature=…&new=1",
  "biz": "MjM5MDU1Mzg3Mw==", "mid": "2651512831", "idx": "1",
  "contentText": "咖啡豆品种的天花板是什么?“瑰夏”是最没有争议的答案之一。\n\n2004年,一支瑰夏品种咖啡豆凭借迷人的花香、柑橘和莓果风味,爆冷夺得巴拿马生豆竞赛冠军。…",
  "charCount": 3091,
  "imageUrls": ["https://mmbiz.qpic.cn/sz_mmbiz_jpg/Zibeuu43K6eiaJufhBdnDQQWITN60ZKIqgnNGGdbIxUUHVQxnvLVMFfSHxyfNz7NcB88R1MEqL4MzMuRCaa5oLgg/640?wx_fmt=jpeg"],
  "searchQuery": "咖啡", "page": 1, "position": 3
}

Compact output for AI agents

Set Output format to compact and the run still pushes the same rows to the dataset at the same price — nothing about billing changes. It additionally writes OUTPUT_COMPACT to the run's key-value store: our token-optimized, lossless encoding of the same rows, built to be cheaper to hand to an LLM than the plain dataset JSON.

Measured on a real 77-row export of this actor's full-article rows:

TokenizerPretty JSONMinified JSONCompactvs Prettyvs Minified
cl100k_base (GPT-4/3.5)46,03543,05340,48412.1% smaller6.0% smaller
o200k_base (GPT-4o)42,04439,06136,64512.8% smaller6.2% smaller

Need regular row objects in your own code? The normal dataset is always there, unchanged, alongside the compact copy.

Good to know

  • Up to about 100 results per keyword. Without login, public search shows about 100 results. Use several related keywords to collect more.
  • Results are sorted by relevance, not date. Search-side date filtering needs login. publishedAfter filters the results it does return, and skipped rows aren't billed.
  • Article URLs from search are temporary. Search results link to temporary article URLs that expire after a while. Save the text in your dataset; biz/mid/idx identify the article permanently.
  • No read or like counts. WeChat shows them only inside the WeChat app.
  • Anti-spider. The search side rate-limits fast clients and issues challenges. The actor handles them for you and is maintained against site changes. If every request is blocked, the run fails instead of ending green with 0 rows.

Reliability

A self-test runs every day to catch search or WeChat site changes early.

Run it on a schedule

Suggested frequency: daily for brand or industry monitoring, weekly for research digests. Add a published-after date so each run picks up only recent articles.

To set it up: save your input as a Task in Apify Console, then add a Schedule. Send results where you work with Apify integrations: Google Sheets, Slack or email notifications, webhooks, Make / Zapier / n8n, or straight into an AI agent through the Apify MCP server. A run that can't get data is marked failed, so your alerts fire.

FAQ

Is there an official WeChat article API? Not for searching other accounts' public articles. The official platform covers accounts you manage. This actor finds public Official Account (微信公众号) articles by keyword and can fetch full text — no WeChat login.

Do I need a WeChat account or cookie? No account, login or cookie.

Can I get the full article text? Yes. Turn on full articles to get complete text, images, author and account ids (billed as the full-article event). Off: search rows with title, summary, account, time and cover.

How do I monitor a brand or topic over time? Run search mode on a schedule (daily for monitoring, weekly for research digests). Set “published on or after” so each run keeps only recent articles. Optional account-name filter focuses on named Official Accounts.

What does a run cost? Pay per event: search rows are $0.0005 ($0.50 per 1,000) and full-article rows $0.005. Run-start is $0.001. Set maxChargeUsd (default $5) to cap spend. Error rows are not billed as content.

Is there a free sample? Yes. The first 20 search rows in a search run with maxResults 50 or below are free. Full articles and article mode bill from the first row. On Apify, one free sample per user per 24 hours.

Can I use it with AI agents / MCP? Yes, through the Apify MCP server. Compact output keeps token use low for RAG and summarization pipelines.

What can I use WeChat article data for? Brand and PR monitoring, industry/policy research, translation and localization, and AI summaries of Chinese-language coverage.

Is there an alternative to scraping WeChat myself? Building a custom Sogou/WeChat pipeline means handling search limits and page changes yourself. This actor returns structured rows (JSON/CSV/Excel) and is maintained against site changes; failed total blocks mark the run failed so schedules alert.

Feedback

If the data helped, a short rating on the Reviews tab helps others find this actor. Something broke or missing a field? Open an issue on the Issues tab — we aim to reply within 24 hours.

Related actors

关键词: 微信公众号文章采集, 公众号爬虫, 微信文章全文, 微信公众号, 搜狗微信搜索, 公众号文章监控, WeChat scraper, WeChat article scraper, WeChat official account, WeChat articles API, WeChat article monitoring.

Actor input Schema

mode (type: string):

What to scrape. No WeChat account, login or cookie is needed.

searchQueries (type: array):

Used in 'search' mode. If left empty, the run uses 人工智能 as a sample keyword.

maxResults (type: integer):

Without login, public search returns up to about 100 results per keyword.

fetchFullArticle (type: boolean):

Off: each result is a search row ($0.0005; first 20 free when maxResults is 50 or below): title, summary, account, publish time, cover. On: each result is a full article ($0.005): adds the full text, images, author, account ids and the original-content flag. If one article can't be opened, it's delivered as a search row at the search price.

includeHtml (type: boolean):

Also return the article body HTML (contentHtml). Off by default because it is large.

publishedAfter (type: string):

Optional. Older results are skipped and not billed. Search-side date filtering needs login, so this filter runs on the results it returns (sorted by relevance).

accountFilter (type: array):

Optional exact account names (e.g. 澎湃新闻). Other results are skipped and not billed.

articleUrls (type: array):

Used in 'article' mode: mp.weixin.qq.com/s/... links. Each is a full-article row ($0.005).

outputFormat (type: string):

Dataset rows are always pushed and charged the same either way. 'compact' additionally writes OUTPUT_COMPACT to the run's key-value store: our lossless, token-optimized copy of the same rows, cheaper to hand to an LLM.

maxChargeUsd (type: number):

Hard spending cap. The run stops cleanly before going over it; rows already delivered are kept.

proxyConfiguration (type: object):

Default: Apify datacenter proxy. The actor handles the site's access protections automatically and is maintained against site changes. Pick RESIDENTIAL to use residential IPs from the start.

requestIntervalSecs (type: number):

Polite pacing between requests; 2 seconds works well.

Actor input object example

{
  "mode": "search",
  "searchQueries": [
    "人工智能"
  ],
  "maxResults": 30,
  "fetchFullArticle": false,
  "includeHtml": false,
  "outputFormat": "standard",
  "maxChargeUsd": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "requestIntervalSecs": 2
}

Actor output Schema

results (type: string):

Article rows (detail: search or full).

compact (type: string):

Present when outputFormat=compact: lossless token-optimized copy of the same rows (OUTPUT_COMPACT).

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

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 = {
    "searchQueries": [
        "人工智能"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("dheerajitbhu/wechat-articles-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

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 = {
    "searchQueries": ["人工智能"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("dheerajitbhu/wechat-articles-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

echo '{
  "searchQueries": [
    "人工智能"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call dheerajitbhu/wechat-articles-scraper --silent --output-dataset

MCP server setup

{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dheerajitbhu/wechat-articles-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/0FjbTBvBRYM5OxsT1/builds/mI4lJWTVF1h6dJatg/openapi.json