# Weibo Scraper - Hot Search, Trending Posts & Comments (`kodenova/weibo-scraper`) Actor

Scrape Weibo (微博) Hot Search list (热搜榜), trending posts by category (finance, tech, society, celebrities…), post details, comments and public profiles. No login or cookies needed. Pay only per result.

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

## Pricing

from $1.80 / 1,000 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](#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

## Weibo Scraper - Hot Search, Trending Posts & Comments (微博热搜)

Export **Weibo Hot Search (热搜榜)**, **trending posts by category**, **post details, comments** and **public profiles** to JSON, CSV or Excel. Built for China trend monitoring, brand and market research, news tracking, sentiment analysis and AI training data. **No login, no cookies, no browser.** Pay only per result.

**What you get**

- **Hot Search:** rank, topic, heat score, label (新 / 热 / 沸 / 爆), category, time it entered the list, and a link. Ads are removed.
- **Trending posts (热门微博)** from 35 channels (finance, stocks, tech, society, international, celebrities, movies, sports and more):
  - full text, likes, comments, reposts, publish time
  - region (IP属地), topics (#话题#), images and video
  - author name and verification (follower counts come with comments and profiles)
- **Specific posts:** paste any post URL to get full long text and all counters.
- **Comments:** text, likes, reply count, region, author, and optional reply previews.
- **Profiles:** name, bio, followers, following, post count and verification for public accounts.

### Sample output

```json
{
  "type": "hotSearch",
  "rank": 1,
  "keyword": "接到网贷催收电话统一说不认识",
  "heat": 1095425,
  "label": "新",
  "category": ["社会"],
  "onboardAt": "2026-10-18T10:41:00.000Z",
  "searchUrl": "https://s.weibo.com/weibo?q=%23%E6%8E%A5%E5%88%B0...%23",
  "scrapedAt": "2026-10-18T11:00:00.000Z"
}
```

```json
{
  "type": "post",
  "postId": "5355108059580071",
  "url": "https://weibo.com/1234567890/Rn7BXEcdh",
  "text": "…",
  "publishedAt": "2026-10-17T12:38:37.000Z",
  "likes": 182,
  "comments": 7,
  "reposts": 7,
  "region": "北京",
  "topics": ["…"],
  "images": ["https://wx1.sinaimg.cn/large/…jpg"],
  "video": null,
  "authorName": "…",
  "authorVerified": true,
  "category": "finance",
  "source": "trending"
}
```

### How to use (3 steps)

1. Tick **Hot Search**, and/or pick **trending categories**, and/or paste **post URLs** or **user IDs**.
2. Optionally turn on **Include comments**.
3. Click **Start**. Then download JSON, CSV or Excel, or call the Actor via API / MCP. **Schedule it hourly** to build your own Weibo trend history.

### Input

| Field | What it does | Example |
|---|---|---|
| `includeHotSearch` | Real-time Hot Search list | `true` |
| `trendingCategories` | Trending post channels | `["finance","tech"]` |
| `maxPostsPerCategory` | Posts per channel | `100` |
| `postUrls` | Specific posts | `["https://weibo.com/1642634100/Rn7BXEcdh"]` |
| `includeComments` / `maxCommentsPerPost` | Comments of the posts above | `true` / `50` |
| `userIds` | Public profiles | `["1642634100"]` |
| `maxItems` | Hard cap for the whole run | `1000` |

Every row has a `type` field (`hotSearch`, `post`, `comment` or `profile`), so you can filter rows in Excel or code.

### Pricing in plain words

You pay **about $3 per 1,000 results**, plus a tiny start fee of $0.00005 per run. Hourly Hot Search monitoring (50 topics × 24 runs) costs about **$3.60 a month**. Higher Apify plans get automatic discounts, and there is no monthly rental.

### FAQ

**Do I need a Weibo account or cookies?** No. The Actor uses the same anonymous guest access a browser gets before login. It collects only publicly visible data.

**Can I search Weibo by keyword or get all posts of a user?** Weibo now requires login for keyword search and user timelines, and this Actor never logs in. Instead, use the Hot Search list, trending categories, or paste the post URLs you need.

**How do I track Hot Search history?** Schedule the Actor (for example hourly) with only *Hot Search* on, then merge the datasets by `rank` and `scrapedAt`.

**Why is a post skipped?** It was deleted, made private, or is visible to logged-in users only. The run continues with the rest.

**Is it legal?** It collects publicly visible data only. Use it in line with Weibo's terms and the privacy laws in your country (GDPR, PIPL), and don't profile private individuals.

### Use via API / MCP

```bash
curl -X POST "https://api.apify.com/v2/acts/kodenova~weibo-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"includeHotSearch":true,"trendingCategories":["finance"],"maxPostsPerCategory":30}'
```

AI agents (Claude, ChatGPT, Cursor) can call it through the Apify MCP server: `https://mcp.apify.com/?tools=kodenova/weibo-scraper`.

### Related Actors

- [Bilibili Scraper - Videos, Search & Trending](https://apify.com/kodenova/bilibili-scraper)
- [Bilibili Comments Scraper](https://apify.com/kodenova/bilibili-comments-scraper)

Need a custom scraper for another Chinese platform? Open an issue on this Actor.

# Actor input Schema

## `includeHotSearch` (type: `boolean`):

Scrape the real-time Weibo Hot Search list (~50 topics): rank, keyword, heat, label (新/热/沸/爆), category. Ads are removed.

## `trendingCategories` (type: `array`):

Collect trending posts (热门微博) from these channels.

## `maxPostsPerCategory` (type: `integer`):

Weibo usually serves a few hundred trending posts per channel.

## `postUrls` (type: `array`):

Specific posts to scrape, e.g. https://weibo.com/1642634100/Rn7BXEcdh, https://m.weibo.cn/detail/5355108059580071 or the numeric ID. Long posts are returned in full.

## `includeComments` (type: `boolean`):

Also scrape comments of the posts above (trending and specific). Each comment is a separate result.

## `maxCommentsPerPost` (type: `integer`):

Top-level comments per post (hot order).

## `includeReplies` (type: `boolean`):

Add the replies Weibo shows under each comment (usually 1–3).

## `userIds` (type: `array`):

Public profile info: name, bio, followers, posts count, verification. e.g. https://weibo.com/u/1642634100 or 1642634100.

## `maxItems` (type: `integer`):

Run stops after this many results in total. You only pay per result saved.

## `proxyConfiguration` (type: `object`):

Keep Apify Proxy on — Weibo's guest session server is not reachable without it.

## Actor input object example

```json
{
  "includeHotSearch": true,
  "trendingCategories": [
    "hot"
  ],
  "maxPostsPerCategory": 50,
  "postUrls": [],
  "includeComments": false,
  "maxCommentsPerPost": 20,
  "includeReplies": false,
  "userIds": [],
  "maxItems": 200,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All scraped items in the default dataset.

## `runSummary` (type: `string`):

Success rate and error counts for this run.

# 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 = {
    "trendingCategories": [
        "hot"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("kodenova/weibo-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 = {
    "trendingCategories": ["hot"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("kodenova/weibo-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 '{
  "trendingCategories": [
    "hot"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call kodenova/weibo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kodenova/weibo-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/dGx3ZKYYjreJq7Pun/builds/Pdv5i9yMJVnEmiigk/openapi.json
