# China Social Media Search - Weibo, WeChat, Douyin & More (`clover_folktale/china-search-scraper`) Actor

Search Chinese social media and news with one keyword: Weibo (微博), WeChat (公众号), Zhihu (知乎), Douyin (抖音), Xiaohongshu (小红书), Bilibili, Kuaishou and news sites in one run. Set a time window, pick platforms, use AND / OR / exclude queries. For China brand monitoring. No login needed.

- **URL**: https://apify.com/clover_folktale/china-search-scraper.md
- **Developed by:** [Silkline](https://apify.com/clover_folktale) (community)
- **Categories:** Social media, Marketing
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 posts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

Search Chinese social media and news with one keyword, without a login. One run covers Weibo (微博), WeChat official accounts (公众号), Zhihu (知乎), Douyin (抖音), Xiaohongshu (小红书, RedNote), Bilibili (B站), Kuaishou (快手) and Chinese news sites, inside a time window you choose. Built for China brand monitoring, market research, PR and competitor tracking.

### What is China Social Media Search?

Most Chinese platforms cannot be searched from outside China, and each one needs its own tool. This Actor searches them together and returns one flat list of posts with the same field names on every platform. It is not affiliated with any of the platforms; it reads what anyone can see in their public search.

### What data can you get?

One record per post (`type: post`):

| Field | Meaning |
|---|---|
| `platform` | `news`, `weibo`, `wechat`, `zhihu`, `douyin`, `xiaohongshu`, `bilibili` or `kuaishou`; `other` for a site that is none of them (for example a video site). In a search over all platforms it is worked out from the site name, so check `siteName` when it matters |
| `siteName` | The site or account type as the source names it, for example `微信公众号`, `新浪微博`, `网易号` |
| `keyword` | The keyword that found the post |
| `title`, `text` | Title (empty for short posts such as Weibo or Douyin) and the text or summary returned by the search; articles can be long |
| `url` | Link to the post |
| `authorName`, `authorId`, `authorAvatarUrl` | The author as the post shows it publicly (news sites often have none) |
| `publishedAt` | Publication time, ISO 8601, UTC. Some sites give only the date; it then shows as midnight Beijing time (16:00 UTC of the day before) |
| `imageUrls`, `videoUrl` | Picture and video addresses of the post; they can be temporary |

The search does not return likes, comments or view counts. For those, use the single-platform scrapers listed at the end.

### How to use China Social Media Search

1. Enter one or more keywords (Chinese works best).
2. Optionally pick platforms and a time window.
3. Set the maximum number of results per search and run.
4. Export the dataset as JSON, CSV or Excel, or read it through the API. Schedule the Actor to monitor a brand every hour or day.

### Input

| Field | Type | Meaning |
|---|---|---|
| `keywords` | list | Search queries. Each keyword is a separate search and pays its own start fee. Falls back to `小米` when empty |
| `platforms` | list | Limit the search to some platforms. Empty (or all eight) searches every platform in one search. Each keyword and chosen platform is a separate search and pays its own start fee |
| `lastHours` | integer | Only posts of the last N hours, 1 to 744. Default 24 |
| `startTime`, `endTime` | string | Optional window in UTC, such as `2026-10-21` or `2026-10-21 12:30`. `startTime` overrides `lastHours`; `endTime` defaults to now. The window is at most 744 hours (31 days) |
| `maxResults` | integer | Posts per search, up to 1000. Default 20 |

#### Query syntax

A keyword can combine terms:

| Syntax | Meaning |
|---|---|
| `A && B` | contains both A and B |
| `A \|\| B` | contains A or B |
| `-A` | does not contain A |
| `(A && B) \|\| C` | grouping |
| `"A"` | exact phrase, no word splitting |

Example, coffee brand news without job ads, on three platforms:

```json
{"keywords": ["\"瑞幸咖啡\" && (新品 || 联名) -招聘"], "platforms": ["weibo", "wechat", "xiaohongshu"], "lastHours": 72, "maxResults": 40}
```

Example, one keyword on all platforms over a fixed day:

```json
{"keywords": ["小米"], "startTime": "2026-10-21", "endTime": "2026-10-22", "maxResults": 50}
```

### Output example

```json
{"type": "post", "platform": "wechat", "siteName": "微信公众号", "keyword": "小米", "title": "小米澎程N90参数很猛，真正要核实的是身份",
 "text": "...", "url": "https://mp.weixin.qq.com/s?__biz=MzY4NjQwODc1Mw==&mid=2247485948&idx=3", "authorName": "初心飘香4056",
 "authorId": "gh_59f4c54ecaf6", "publishedAt": "2026-10-14T16:00:00Z", "imageUrls": ["https://mmbiz.qpic.cn/..."], "videoUrl": null}
```

### How much does it cost?

You pay per event: a start fee of $0.04 per search, plus $0.02 per post returned.

- Every further keyword pays the start fee again, and so does every further keyword and platform pair when you choose platforms.
- A post already returned by an earlier search of the same run is not returned or charged twice.
- Example: 40 posts for one keyword cost $0.04 + 40 x $0.02 = $0.84.
- Example: 3 keywords with 20 posts each, platforms left empty (all eight in one search each), cost 3 x $0.04 + 60 x $0.02 = $1.32.
- Example: 1 keyword on 3 chosen platforms with 40 posts each is 3 searches and costs up to 3 x $0.04 + 120 x $0.02 = $2.52.
- Each keyword and platform pair is a separate search with its own start fee. Leaving `platforms` empty searches all eight platforms in one search with one start fee.
- A spending limit set on the run is respected: the run stops cleanly when the next post or start fee does not fit.

Free Apify plan: every run returns a sample dataset (a real result of the prefilled input) so you can see the output format; your input is not used and nothing is charged. To run your own queries, use any paid Apify plan.

### Use cases

- Watch what Chinese social media and news say about your brand or product, every hour or every day.
- Compare how a topic is covered on Weibo, WeChat, Xiaohongshu and Douyin.
- Find the articles, videos and posts behind a trend, a launch or a crisis in a chosen period.
- Track competitors by name, with exclusion terms to cut recruitment and advertising noise.

### Integrations and API

Runs can be started through the Apify API, scheduled, and connected to integrations such as webhooks, Zapier or Make.

```python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("clover_folktale/china-search-scraper").call(run_input={"keywords": ["小米"], "platforms": ["weibo"], "lastHours": 6})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["platform"], item["publishedAt"], item["title"] or item["text"][:60], item["url"])
```

### Tips and limits

- Posts come oldest first inside the time window. A long window on a popular keyword fills your quota with the oldest posts, so use a short window (a few hours) and schedule the Actor to get the newest ones.
- A keyword matches any post that contains it, so a short or common word also brings unrelated posts (searching `小米` alone returns posts that only mention it in a hashtag). Narrow it with the query syntax, for example `"小米" && (手机 || 汽车)`.
- A page holds 10 posts. The search goes on while a page brings at least 2 posts you do not have yet and the platform has more; it stops at your `maxResults`.
- Times are UTC. The platforms publish in China time (UTC+8), so a post made at 08:00 in Beijing has `publishedAt` 00:00Z.
- A quiet keyword or a short window can return nothing for a platform; that is a normal result, and the start fee still applies because the search was made.
- Platforms and news sites differ in how much text they return; Weibo and Douyin posts have no title.
- Only what the post shows publicly is returned: text, public author name and ID, picture and video addresses. No private data.
- Picture and video addresses can be temporary; download what you need soon after the run.

### FAQ

**Do I need a Chinese account or a login?** No login or cookies are needed.

**Which platforms are covered?** News sites, Weibo, WeChat official accounts, Zhihu, Douyin, Xiaohongshu, Bilibili and Kuaishou.

**Is it legal?** Only public data is returned. No messages, phone numbers or other private data. You are responsible for how you use it.

**How fresh is the data?** Each run reads the platforms at that moment; posts appear a few minutes to hours after publication.

**Can I get comments, likes or follower counts?** Not from this Actor. Use the single-platform scrapers below.

**Can I schedule runs and export?** Yes, to JSON, CSV, Excel and more.

### More tools from the same developer

- [Weibo Scraper - Hot Search, Posts, Comments & Users](https://apify.com/clover_folktale/weibo-scraper)
- [WeChat Official Account Scraper - Articles & Read Counts](https://apify.com/clover_folktale/wechat-scraper)
- [Xiaohongshu RedNote Scraper - Notes, Comments & Replies](https://apify.com/clover_folktale/xiaohongshu-scraper)
- [Douyin Scraper - Videos, Comments, Profiles & Hot Search](https://apify.com/clover_folktale/douyin-scraper)
- [Zhihu Scraper - Answers, Articles & Comments](https://apify.com/clover_folktale/zhihu-scraper)
- [Bilibili Scraper - Videos, Comments, Danmaku & Subtitles](https://apify.com/clover_folktale/bilibili-scraper)

# Actor input Schema

## `mode` (type: `string`):

What to run. Only one mode: search posts by keyword across Chinese platforms.

## `keywords` (type: `array`):

Search queries; each keyword is a separate search and pays its own start fee. Chinese works best. Operators: A && B (both), A || B (either), -A (exclude), (A && B) || C (group), "A" (exact phrase). Falls back to "小米" when empty.

## `platforms` (type: `array`):

Limit the search to these platforms. Leave empty (or choose all) to search every platform in one search. Each keyword and chosen platform pair is a separate search and pays its own start fee.

## `lastHours` (type: `integer`):

Only posts of the last N hours (1 to 744). Used when 'Start time' is empty; 'Start time' and 'End time' override it. Posts come oldest first inside the window, so use a short window to get the newest posts. Default 24.

## `startTime` (type: `string`):

Optional. Start of the time window, for example 2026-10-21 or 2026-10-21 12:30 (UTC). Overrides 'Last hours'. The window is at most 744 hours (31 days).

## `endTime` (type: `string`):

Optional. End of the time window, same format as 'Start time'. Default: now.

## `maxResults` (type: `integer`):

Maximum posts for each search (each keyword, or each keyword and chosen platform), up to 1000. You are charged $0.02 per post returned, plus a $0.04 start fee per run; every further keyword (or keyword and platform pair) pays the start fee again. Posts already returned by an earlier search of the run are not charged twice.

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "小米"
  ],
  "lastHours": 24,
  "maxResults": 20
}
```

# Actor output Schema

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

All scraped items (JSON, CSV, Excel via the dataset API).

# 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 = {
    "keywords": [
        "小米"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("clover_folktale/china-search-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 = { "keywords": ["小米"] }

# Run the Actor and wait for it to finish
run = client.actor("clover_folktale/china-search-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 '{
  "keywords": [
    "小米"
  ]
}' |
apify call clover_folktale/china-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clover_folktale/china-search-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/kSaEPdf6dX95HpW3a/builds/0ciY3TndoLvXCTEs6/openapi.json
