# Weibo Comments & Province Scraper 微博评论提取 (No Cookie) (`axon-studio/weibo-comments-scraper`) Actor

\[100% No Cookie / No Login — $4.5/1k] Extract Sina Weibo (微博) comment threads, likes, sentiment scores & commenter IP province geolocation (mapped to English, e.g. 广东 -> Guangdong) by post URL/ID or keyword auto-discovery.

- **URL**: https://apify.com/axon-studio/weibo-comments-scraper.md
- **Developed by:** [Axon Studio](https://apify.com/axon-studio) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.80 / 1,000 item scrapeds

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

Extract reader comment threads (`post_comments`), comment like counts, sentiment polarity, and **commenter IP province locations (`regionEn`)** from **Sina Weibo (新浪微博)** — **with 100% no login, no cookies, and no VPN required**.

Built for **Chinese consumer sentiment analysis, regional market-share mapping (province-level geolocation), campaign reception audits, and multi-turn LLM dialogue datasets** (n8n, Make, Dify, Claude MCP). Users on the **Apify Free plan ($5 monthly credit) can extract up to 1,111 Weibo comments per month for free**.

***

### What Can This Weibo Comments Scraper Do? (Features)

| Weibo Comments Scraper Capability | Built-In Advantage |
| :--- | :--- |
| **Dual-Engine Comment Extraction (`post_comments`)** | Queries both PC Ajax (`/ajax/statuses/buildComments`) and Mobile H5 (`/api/comments/show`) endpoints automatically so comment threads are never missed. |
| **Smart Keyword Auto-Discovery** | Don't have specific Post IDs? Leave `postIds` empty and enter any English or Chinese keyword in `searchQuery` (e.g., `Tesla`, `Luckin`, `瑞幸咖啡`) to automatically find active posts and harvest their comments! |
| **IP Province Geolocation (`regionEn`)** | Automatically translates every commenter's Chinese IP location tag (`来自广东`, `来自上海`) into standardized English province and country names (`Guangdong`, `Shanghai`, `Beijing`, `United States`). |
| **Built-In Chinese Sentiment Analysis** | Tags every comment with `sentiment` (`positive` / `negative` / `neutral`) and `sentimentScore` (`-1.0` to `+1.0`), accurately handling Chinese negation reversal (`"不好看"` → negative, `"不错"` → positive). |
| **Single Post Engagement Refresh (`post_details`)** | Switch `mode` to `post_details` to quickly inspect the parent post's full text, `attitudesCount` (likes), `commentsCount`, and `repostsCount`. |
| **256 MB RAM Real-Time Streaming** | Streams comment records into your Dataset in real-time batches of 10 rows on just **256 MB RAM** with automatic comment ID deduplication (`deltaMode`). |

***

### How to Scrape Weibo Comments in 3 Easy Steps

1. **Provide Target Posts OR a Keyword** — Paste one or more Weibo 16-digit Post IDs, `mblogid` codes, or URLs into **`postIds`**; OR leave `postIds` empty and type a brand/topic in **`searchQuery`** (e.g., `Tesla`) for automatic post discovery.
2. **Set `maxResults`** — Choose the total number of comment rows to extract (`1` to `5,000`).
3. **Click "Start"** — Export your comment dataset with English province locations and sentiment scores to **JSON, CSV, Excel, or Parquet**, or connect via API / Claude MCP.

***

### Weibo Comments Scraper Use Cases

| Buyer Profile | Weibo Comment & Geolocation Use Case |
| :--- | :--- |
| **Brand & Consumer Insights Teams** | The post is the prompt; the replies are the true consumer sentiment. Measure authentic buyer reactions under official product launch posts or KOL reviews |
| **Regional Marketing & Retail Analysts** | Map where in China the conversation is happening using `regionEn` (`Guangdong`, `Zhejiang`, `Sichuan`, `Beijing`) to guide regional ad spend and store openings |
| **AI / LLM Dialogue & SFT Teams** | Harvest authentic colloquial Chinese multi-turn replies and internet slang with like-count quality signals (`likesCount`) |
| **PR Crisis & Public Opinion Desks** | Track real-time public backlash or support in the comment sections of breaking trending posts |

***

### Input

All parameters are configured in the **Input** tab. Below are the main input fields and JSON examples:

| Input Field | Type | Description |
| :--- | :--- | :--- |
| **`postIds`** | `array` | Weibo 16-digit post IDs (`"5356654347420790"`), `mblogid` codes (`"RnLPYv8ua"`), or post URLs. Leave empty `[]` to auto-discover posts via `searchQuery`. |
| **`searchQuery`** | `string` | Brand or topic in English or Chinese (e.g., `"Tesla"`, `"瑞幸咖啡"`), used to auto-discover active comment threads when `postIds` is empty. |
| **`autoLocalize`** | `boolean` | Automatically translates English keywords into Simplified Chinese during auto-discovery (default: `true`). |
| **`maxResults`** | `integer` | Maximum number of comment records to return (`1` to `5,000`, default: `100`). |
| **`sentimentAnalysis`** | `boolean` | Adds `sentiment` (`positive` / `negative` / `neutral`) and `sentimentScore` (`-1.0` to `+1.0`) to each comment (default: `true`). |
| **`deltaMode`** | `boolean` | Remembers scraped `commentId` values across scheduled runs so you only pay for new replies (default: `false`). |
| **`mode`** | `string` | `"post_comments"` (default) to extract comments, or `"post_details"` to extract parent post metrics. |

#### 1. Extract Comments from Specific Weibo Post IDs or URLs (JSON)

```json
{
  "mode": "post_comments",
  "postIds": [
    "5356654347420790",
    "https://weibo.com/1749127163/RnLKq8wB2"
  ],
  "maxResults": 200,
  "sentimentAnalysis": true,
  "deltaMode": false
}
```

#### 2. Auto-Discover Active Posts & Harvest Comments by Brand Keyword (JSON)

```json
{
  "mode": "post_comments",
  "postIds": [],
  "searchQuery": "Tesla",
  "autoLocalize": true,
  "maxResults": 150,
  "sentimentAnalysis": true
}
```

***

### Output

Each extracted comment is stored in your Apify **Dataset** with standardized province geolocation and sentiment fields (matching the `"5356654347420790"` input above):

```json
{
  "mode": "post_comments",
  "postId": "5356654347420790",
  "commentId": "5356658192014412",
  "text": "焕新版 Model Y 的隔音和底盘滤震确实提升很大，周末刚去广州门店试驾完！",
  "sentiment": "positive",
  "sentimentScore": 0.78,
  "createdAt": "Sat Oct 24 14:22:10 +0800 2026",
  "createdAtIso": "2026-10-24T14:22:10+08:00",
  "authorId": "6108685154",
  "authorName": "数码玩家Leo",
  "authorVerified": false,
  "regionName": "广东",
  "regionEn": "Guangdong",
  "likesCount": 42,
  "scrapedAt": "2026-10-24 16:45:10 UTC"
}
```

#### Output Field Definitions

- **`postId`**: The 16-digit ID of the parent Weibo post (use this to join comments back to posts).
- **`commentId`**: Unique ID of the comment (deduplicated within and across runs).
- **`text`**: Clean HTML-stripped comment text in Simplified Chinese.
- **`regionName` / `regionEn`**: Commenter's IP location as displayed by Weibo (`广东` → `"Guangdong"`).
- **`likesCount`**: Number of upvotes/likes the comment has received.
- **`sentiment` / `sentimentScore`**: Sentiment polarity (`positive`, `negative`, `neutral`) and score (`-1.0` to `+1.0`).

***

### Automated Comment Thread Monitoring (Schedules & Delta Mode)

Monitor viral posts for new reader replies automatically:

1. In **Apify Console → Schedules → Create new schedule**, select **`axon-studio/weibo-comments-scraper`** and set your run interval.
2. Enable **`deltaMode: true`**. Previously delivered `commentId` records are stored in `DELTA_SEEN_IDS` and skipped automatically on future runs—so you only pay for brand-new comments.

#### Python & Synchronous REST API Integration

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("axon-studio/weibo-comments-scraper").call(run_input={
    "mode": "post_comments",
    "postIds": ["5356654347420790"],
    "maxResults": 100,
    "sentimentAnalysis": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["commentId"], item["regionEn"], item["sentiment"], item["text"])
```

```bash
curl -X POST "https://api.apify.com/v2/acts/axon-studio~weibo-comments-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"post_comments","postIds":[],"searchQuery":"Tesla","maxResults":50}'
```

***

### How Much Does It Cost to Scrape Weibo Comments? (Pricing)

**$4.50 per 1,000 comments (`$0.0045` per comment) + `$0.02` per Actor start (Pay-Per-Event)**

- **Free Plan Credits**: Every Apify account includes **$5.00 in free monthly credits**, covering up to **1,111 Weibo comments every month for free**.
- **Volume Discounts**: Automatic lower unit prices for Apify **Bronze / Starter**, **Silver / Scale**, and **Gold / Business** plan subscribers.
- **No Server Compute Fees**: Memory and CPU usage are included in the Pay-Per-Event price.
- **Typical Run Costs**: 100 comments = **`$0.47`** · 500 comments = **`$2.27`** · 2,000 comments = **`$9.02`**.

***

### FAQ & Legal Compliance

#### Do I need a Weibo login cookie to extract comments and IP provinces?

**No.** This Actor uses a dual PC and Mobile comment engine paired with automatic session management—no personal cookies or login required.

#### Is it legal to scrape public Weibo comments?

This Actor extracts publicly visible comments and IP province tags displayed on Weibo posts and does not access private data. Public usernames, UIDs, and province labels may constitute personal data under **GDPR** or **PIPL**; ensure you have a lawful basis for market research or NLP analysis. *Not affiliated with Sina Corporation or Weibo.*

***

### More Chinese Social Intelligence Scrapers by Axon Studio

- **[Weibo Scraper — All-in-One Search, Hot Trends, Comments & BlackCat](https://apify.com/axon-studio/weibo-scraper)** — 9-mode comprehensive Sina Weibo & BlackCat intelligence suite.
- **[BlackCat Scraper 黑猫投诉 — China Consumer Complaints API](https://apify.com/axon-studio/blackcat-scraper)** — Extract consumer disputes and brand complaints from `tousu.sina.com.cn`.
- **[Weibo User Posts & Profile Scraper (No Cookie)](https://apify.com/axon-studio/weibo-user-posts-scraper)** — Extract creator timelines (`user_posts`) and KOL follower metrics without login.

# Actor input Schema

## `postIds` (type: `array`):

Paste Weibo 16-digit post IDs (e.g. 5356654347420790), mblogids (RnLPYv8ua), or full post URLs. If left empty, the scraper will automatically find active posts matching 'Keyword for auto-discovery' below and extract their comments.

## `searchQuery` (type: `string`):

If you don't have specific Post IDs, enter any brand or topic in English or Chinese (e.g., Tesla, Luckin, 瑞幸咖啡) to automatically harvest comments from active posts on that topic.

## `autoLocalize` (type: `boolean`):

Automatically translates English brand/topic keywords into Simplified Chinese during auto-discovery.

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

Maximum number of comment rows to return (1 to 5,000).

## `sentimentAnalysis` (type: `boolean`):

Automatically tags every comment with Chinese/English sentiment polarity and score (-1.0 to +1.0).

## `deltaMode` (type: `boolean`):

Remembers scraped comment IDs across scheduled runs and only outputs brand-new replies.

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

Select post_comments to extract comment threads, or post_details to check single post metrics.

## Actor input object example

```json
{
  "postIds": [],
  "searchQuery": "Tesla",
  "autoLocalize": true,
  "maxResults": 100,
  "sentimentAnalysis": true,
  "deltaMode": false,
  "mode": "post_comments"
}
```

# Actor output Schema

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

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("axon-studio/weibo-comments-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("axon-studio/weibo-comments-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 '{}' |
apify call axon-studio/weibo-comments-scraper --silent --output-dataset

```

## MCP server setup

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