# Weibo 微博 Scraper - Posts, Users, Comments & Hot Search (`vulnv/weibo-scraper`) Actor

Scrape Weibo (微博 / Sina Weibo): keyword post search, full post details, post comments, user profiles, a user's posts, and the live hot search list. Export text, images, video, reposts, comments, likes and user data to JSON/CSV/Excel. No login, cookies or proxy needed.

- **URL**: https://apify.com/vulnv/weibo-scraper.md
- **Developed by:** [VulnV](https://apify.com/vulnv) (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 $3.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

## Weibo Scraper - Search 微博 Posts, Users, Comments & Hot Search

**Scrape Weibo (微博 / Sina Weibo) and export posts, user profiles, comments and the hot search list to JSON, CSV or Excel.** Search posts by keyword, pull a single post's full text and details, collect a post's comments, get a user's profile, list a user's posts, or grab the live hot search ranking (热搜) - all from one Actor. Each result is one clean, flat row with text, images, video, reposts, comments, likes and author data.

No login, no cookies, no proxies and no China IP to configure - data is fetched through a fast, managed pipeline. Just pick an operation, add your input and press **Start**.

> **Unofficial notice:** This is an independent tool and is **not** affiliated with, endorsed by, or connected to Weibo, 微博, Sina Weibo or Weibo Corporation. "Weibo", "微博" and "Sina Weibo" are trademarks of their respective owners, used here only to describe what the Actor scrapes.

### What is Weibo?

Weibo (微博, "microblog") is China's largest public social media platform, with over 500 million monthly users. It is where Chinese news breaks, celebrities and brands talk to fans, and trending topics are ranked minute by minute on the famous hot search list (热搜). This scraper gives you programmatic access to Weibo's search, posts, users, comments and hot search so you can track trends, monitor brands and analyze public opinion at scale without a Weibo account.

### Operations

Pick one **Operation** and fill in the matching field:

| Operation | Input field | What you get |
|-----------|-------------|--------------|
| **Search posts by keyword** | `keywords` | Posts matching each keyword, with text, media, engagement and author data. |
| **Post details** | `postUrls` | The full detail of each post, including the complete text of long posts. |
| **Post comments** | `postUrls` | Top-level comments for each post, with likes, reply counts, region and commenter data. |
| **User profile** | `userUrls` | A user's profile: followers, following, post count, total interactions, verification, bio. |
| **User's posts** | `userUrls` | The posts on a user's timeline, newest first, paginated. |
| **Hot search list (热搜)** | none | The live real-time hot search ranking: rank, term, heat score and badge. |

`postUrls` accept `weibo.com/<uid>/<code>` URLs, `m.weibo.cn/detail/<id>` URLs, numeric post IDs (e.g. `5348929730249730`) or short codes (e.g. `RkwSV12XU`). `userUrls` accept `weibo.com/u/<uid>` or `m.weibo.cn/u/<uid>` URLs or bare numeric **UIDs** - one per line.

### How to use it (step by step)

1. Choose an **Operation**.
2. Fill in the matching input:
   - Search posts -> add one or more **Search keywords** (Chinese, English, brands, #topics# and emoji all work).
   - Post details / Post comments -> paste **Post URLs / IDs**.
   - User profile / User's posts -> paste **User URLs / UIDs**.
   - Hot search list -> nothing to fill in.
3. Set **Maximum results per input** (default 100, or 0 for all available) for the paginated operations and the hot search list.
4. For search, optionally set **Search type** (comprehensive, real-time or hot).
5. Press **Start**. Export the dataset as JSON, CSV, Excel, XML or via the API.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `operation` | string | **Required.** `search_posts`, `post_detail`, `post_comments`, `user_profile`, `user_posts`, or `hot_search`. |
| `keywords` | array | Search keywords (for `search_posts`). |
| `postUrls` | array | Post URLs, numeric IDs or short codes (for `post_detail`, `post_comments`). |
| `userUrls` | array | User URLs or UIDs (for `user_profile`, `user_posts`). |
| `maxItems` | integer | Max results per keyword / user / post, and max hot-search topics. `0` = all available. Default `100`. |
| `searchType` | string | `comprehensive`, `realtime`, or `hot` (search only). |

### Output

Every row carries a `record_type` of `post`, `user`, `comment` or `hot_topic`. Common post fields:

| Field | Description |
|-------|-------------|
| `post_id`, `mblogid`, `post_url` | Post identity and canonical URL. |
| `text`, `is_long_text`, `text_is_full`, `topics` | Post text (HTML stripped), long-post flags and #topics#. |
| `reposts_count`, `comments_count`, `likes_count` | Engagement metrics. |
| `image_count`, `image_urls`, `attachment_type`, `attachment_title` | Images and attached cards (video, article). |
| `video_url`, `video_duration_seconds`, `video_play_count` | Attached video data. |
| `is_repost`, `retweeted_post_id`, `retweeted_text`, `retweeted_author_name` | The original post, for reposts. |
| `author_id`, `author_name`, `author_followers_count`, `author_verified`, `author_verified_reason`, `author_avatar_url` | Author data. |
| `create_time`, `region`, `source` | Publish time (ISO-8601 UTC), IP region and publishing client. |

User (`user`) rows add `screen_name`, `description`, `gender`, `location`, `ip_location`, `followers_count`, `following_count`, `posts_count`, `interactions_total`, `verified`, `verified_reason`, `member_rank`, `register_time` and `profile_url`. Comment (`comment`) rows add `comment_id`, `content`, `like_count`, `reply_count`, `region` and the commenter's `author_*` fields. Hot-search (`hot_topic`) rows add `rank`, `word`, `hot_value`, `label`, `is_ad` and `search_url`.

Example post row:

```json
{
  "record_type": "post",
  "operation": "post_detail",
  "input": "https://weibo.com/1927518567/RkwSV12XU",
  "post_id": "5348929730249730",
  "mblogid": "RkwSV12XU",
  "post_url": "https://weibo.com/1927518567/RkwSV12XU",
  "text": "…",
  "is_long_text": true,
  "text_is_full": true,
  "create_time": "2026-09-30T11:28:09+00:00",
  "region": "上海",
  "image_count": 17,
  "reposts_count": 0,
  "comments_count": 0,
  "likes_count": 0,
  "author_name": "…"
}
```

### Common use cases

- **Trend tracking** - snapshot the hot search list on a schedule and watch topics rise and fall.
- **Brand and public-opinion monitoring** - search a brand or product and collect posts and comments for sentiment analysis.
- **KOL (博主) discovery** - find influential accounts in a niche, then pull their profile and post history.
- **Market and AI research** - build datasets of Chinese social media text, images and comments.

### Notes on reliability

- Search and user-feed posts show Weibo's shortened text for long posts (`text_is_full` is `false`); run **Post details** on those posts to get the complete text.
- **Real-time** search returns only the latest posts (usually 10-30 per keyword), because Weibo's real-time feed is a live stream rather than a paged list. Use **Comprehensive** or **Hot** for deeper results.
- Some authors curate their comments (评论精选); those posts return no public comments, and the run continues.
- Image and video URLs are served by Weibo's CDN and expire; fetch them promptly.
- Counts reflect what Weibo returns at scrape time. If a post or user is private, deleted or restricted, that input is skipped and the run continues.

### FAQ

**Do I need a Weibo account, cookies or a proxy?** No. Just add your input and press Start.

**Which post links work?** `weibo.com/<uid>/<code>`, `m.weibo.cn/detail/<id>` and `m.weibo.cn/status/<id>` links, numeric post IDs and short codes all work.

**Can I use a vanity profile URL like weibo.com/brandname?** Use the numeric UID instead - it is in the `weibo.com/u/<uid>` link and in the `author_id` field of any post row.

**Can I run several keywords or URLs at once?** Yes - add multiple lines. For search and user posts, cross-input duplicate posts are removed automatically.

**Can I try it for free?** Yes. Users on the free Apify plan can fetch up to 10 results in total to try the Actor. Upgrade to a paid Apify plan to run it without that limit.

**What export formats are supported?** JSON, CSV, Excel, XML and HTML, plus the Apify API and integrations such as Google Sheets, Zapier, Make and webhooks.

### Pricing

This Actor is **pay per result**: you are charged for each record it returns (posts, comments, user profiles and hot-search topics), plus standard Apify platform usage. Different record types have different prices; see the **Pricing** tab for current rates. You are never charged for inputs that return nothing.

### Related scrapers

- **[Xiaohongshu Scraper](https://apify.com/vulnv/xiaohongshu-scraper)** - 小红书 / RedNote notes, users and comments.
- **[Douyin Scraper](https://apify.com/vulnv/douyin-search-scraper)** - 抖音 videos by keyword, with creators and downloads.
- **[Bilibili Scraper](https://apify.com/vulnv/bilibili-scraper)** - 哔哩哔哩 videos, creators and comments.

# Actor input Schema

## `operation` (type: `string`):

What to scrape. Each operation uses a different input field below:

• Search posts → Keywords
• Post details → Post URLs / IDs
• Post comments → Post URLs / IDs
• User profile → User URLs / UIDs
• User's posts → User URLs / UIDs
• Hot search list → no input needed

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

For the "Search posts" operation. Add one or more keywords - Chinese, English, brand names, #topics# and emoji all work. Each keyword is searched independently and cross-keyword duplicates are removed.

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

For the "Post details" and "Post comments" operations. Paste full post URLs (weibo.com/<uid>/<code> or m.weibo.cn/detail/<id>), numeric post IDs (e.g. 5348929730249730) or short codes (e.g. RkwSV12XU) - one per line.

## `userUrls` (type: `array`):

For the "User profile" and "User's posts" operations. Paste weibo.com/u/<uid> or m.weibo.cn/u/<uid> URLs or bare numeric UIDs - one per line. Custom vanity URLs (weibo.com/<name>) are not supported; use the numeric UID.

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

Upper bound on results per keyword / user / post (for the paginated operations: search, user's posts, comments) and on the number of hot-search topics. Cost scales linearly. Set 0 to fetch all available.

## `searchType` (type: `string`):

For "Search posts" only. Comprehensive and Hot page deep into the results. Real-time returns only the latest posts (usually 10-30 per keyword), because Weibo's real-time feed is a live stream rather than a paged list.

## Actor input object example

```json
{
  "operation": "search_posts",
  "keywords": [
    "咖啡",
    "iPhone"
  ],
  "maxItems": 100,
  "searchType": "comprehensive"
}
```

# Actor output Schema

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

All scraped Weibo results in the default dataset.

## `overview` (type: `string`):

Overview table of the scraped results.

# 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": [
        "咖啡",
        "iPhone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vulnv/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 = { "keywords": [
        "咖啡",
        "iPhone",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("vulnv/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 '{
  "keywords": [
    "咖啡",
    "iPhone"
  ]
}' |
apify call vulnv/weibo-scraper --silent --output-dataset

```

## MCP server setup

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