# Weibo Scraper: Posts, Users, Hot Search & Comments (`parseforge/weibo-scraper`) Actor

Scrape Sina Weibo (微博) posts by keyword, user, post link or hot-search topic: text, likes, comments, reposts, media, author stats. Export CSV, Excel, JSON, XML.

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

## Pricing

from $7.24 / 1,000 weibo posts

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🔥 Weibo Scraper

> 🚀 **Export Weibo posts in seconds.** Search by keyword, pull a profile's latest posts, fetch any post by link, or cover the live hot-search board, and get every post as a flat 50-field row with exact likes, comments and reposts, author stats, pictures, playable video and optional top comments. About 90 unique posts per keyword and 50 trending topics per board, from a plain HTTP client with no account.

Sina Weibo (新浪微博) is China's largest public microblog, where news breaks, brands launch and trending topics (热搜) are ranked minute by minute. This Actor reads the same JSON the Weibo mobile site loads for a logged-out visitor, so every field comes from Weibo itself. No browser, no API key, no login cookie of your own.

Every row carries the post text in its original Chinese, the publish time in ISO 8601, the province Weibo shows as the IP location, and three engagement counters. Weibo prints large numbers as "8252.4万" or "1.58亿", so the row ships the parsed integer (82524000) next to the text exactly as Weibo printed it. Four ways in: keywords across five search tabs, users by id, handle or screen name, post links with no depth limit, and the top 1 to 50 topics of the hot-search board.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| China market and brand researchers | Read what Chinese consumers say about a product or a competitor, in their own words |
| Social listening and PR agencies | Track a campaign hashtag or a crisis topic by likes, comments and reposts |
| News, finance and policy analysts | Follow what is trending on the hot-search board and who is driving it |
| AI and NLP teams | Build Chinese-language corpora with engagement labels and author metadata |

### 📋 What the Weibo Scraper does

> 💡 **Why it matters:** the hot-search board is where China's public agenda gets set, and it changes every minute. This Actor turns a ranked topic into the posts behind it, each tagged with the topic's rank, heat score and label, so "what is trending" and "what people are saying about it" land in one table.

- 🔎 **Keyword search across five tabs:** Top (综合), Latest (实时), Hot (热门), Images (图片) and Videos (视频). Tabs are merged and deduplicated, which gives about 90 unique posts for a keyword such as 咖啡.
- 👤 **Profiles by id, link, handle or name:** `1669879400`, `https://weibo.com/u/1669879400`, `https://weibo.com/rmrb` or `人民日报` all work. You get the latest posts Weibo shows a visitor, about 10 to 20 per profile.
- 📝 **Any post by link:** `https://weibo.com/<uid>/<bid>`, `https://m.weibo.cn/detail/<id>` or a bare id. No depth limit.
- 🔥 **Hot-search coverage:** pick the top N topics of the live board and the Actor searches each one, tagging every post with `hotSearchRank`, `hotSearchHeat` and `hotSearchLabel`.
- 📜 **Full text of long posts:** Weibo truncates long posts in lists. The Actor fetches the complete text for you, on by default.
- ❤️ **Exact counters plus Weibo's own label:** likes, comments, reposts and video plays as integers, and the text Weibo displays, including its "100万+" cap on comments and reposts.
- 🖼 **Media:** every full-size picture, plus a playable MP4 link, title, play count and duration for video posts.
- 👥 **Author on every row:** name, id, avatar, verification label, followers, following, post count, bio and gender.
- 💬 **Top comments add-on:** switch it on to attach the first public page of comments (about 20) with author, likes, reply count and time.

### 🎬 Full Demo (🚧 Coming soon)

A short walkthrough video is in production.

### 📊 Output

| Field | Type | Description |
|---|---|---|
| 🖼 `imageUrl` | string | First picture or video cover, `N/A` for text-only posts |
| 🆔 `postId` | string | Numeric Weibo post id, used for deduplication |
| 🔖 `bid` | string | Short id used in weibo.com links |
| 🔗 `url` | string | Post link on weibo.com |
| 📱 `mobileUrl` | string | Post link on m.weibo.cn |
| 📝 `text` | string | Full post text, emoji codes kept as `[name]` |
| 📜 `isLongText` | string | `Yes` when Weibo truncates the post in lists |
| 📅 `createdAt` | string | Publish time, ISO 8601 UTC |
| 📍 `postedFrom` | string | Province or country Weibo shows as the IP location |
| 📲 `client` | string | Client or label the post was published from |
| ❤️ `likesCount` / `likesCountText` | integer / string | Likes, parsed and as shown |
| 💬 `commentsCount` / `commentsCountText` | integer / string | Comments, parsed and as shown (`100万+` when capped) |
| 🔁 `repostsCount` / `repostsCountText` | integer / string | Reposts, parsed and as shown |
| 👤 `authorId`, `authorName`, `authorUrl`, `authorAvatar` | string | Who posted it |
| ✅ `authorVerified`, `authorVerifiedReason` | string | Verification status and label |
| 👥 `authorFollowers` / `authorFollowersText` | integer / string | Followers, parsed and as shown (`8252.4万`) |
| ➡️ `authorFollowing`, `authorPostsCount` | integer | Accounts followed and total posts |
| 🪪 `authorDescription`, `authorGender` | string | Bio and gender |
| 🖼 `pictureCount` | integer | Pictures attached |
| 🎬 `videoUrl`, `videoTitle` | string | Playable MP4 and title, `N/A` when no video |
| ▶️ `videoPlayCount` / `videoPlayCountText` | integer / string | Video plays, parsed and as shown |
| ⏱ `videoDurationSeconds` | integer | Video length in seconds |
| 🔁 `isRepost`, `repostedPostId`, `repostedText`, `repostedAuthorName` | string | The original post when this one is a reshare |
| 🧭 `sourceType`, `sourceQuery`, `searchTab` | string | Which input produced the row |
| 🔥 `hotSearchRank`, `hotSearchHeat`, `hotSearchLabel` | integer / string | Trending-topic context, `0` / `N/A` otherwise |
| #️⃣ `hashtags`, 📣 `mentions`, 🖼 `pictures` | array | Topics, @mentions and full-size picture links |
| 💬 `topComments` | array | First public page of comments when the add-on is on, otherwise `[]` |
| 🕒 `scrapedAt` | string | When the row was collected |
| ❌ `error` | string or null | Filled only on error rows, which are never billed |

Three real records from a run (keyword search, a profile, and a hot-search topic):

```json
[
  {
    "imageUrl": "https://wx3.sinaimg.cn/mw2000/0076DOeAgy1ih5cr7ysioj32c0340qv5.jpg",
    "postId": "5343736894851317",
    "bid": "RilNnkm33",
    "url": "https://weibo.com/6511075736/RilNnkm33",
    "mobileUrl": "https://m.weibo.cn/detail/5343736894851317",
    "text": "每次找到好喝的我都想分享[春游家族]\n库迪这个特别好喝！我点的这个咖啡味没有很浓（喜欢咖啡味重一点的可以选加浓）\n喝起来很丝滑浓郁～",
    "isLongText": "No",
    "createdAt": "2026-09-16T03:33:40.000Z",
    "postedFrom": "重庆",
    "client": "iPhone客户端",
    "likesCount": 747,
    "likesCountText": "747",
    "commentsCount": 275,
    "commentsCountText": "275",
    "repostsCount": 3,
    "repostsCountText": "3",
    "authorId": "6511075736",
    "authorName": "ririzi-",
    "authorUrl": "https://weibo.com/u/6511075736",
    "authorAvatar": "https://wx1.sinaimg.cn/orj480/0076DOeAly8i43b1xh2wkj30e80e8mx1.jpg",
    "authorVerified": "No",
    "authorVerifiedReason": "N/A",
    "authorFollowers": 300000,
    "authorFollowersText": "30万",
    "authorFollowing": 2,
    "authorPostsCount": 1504,
    "authorDescription": "还算ok的一人",
    "authorGender": "Female",
    "pictureCount": 1,
    "videoUrl": "N/A",
    "videoTitle": "N/A",
    "videoPlayCount": 0,
    "videoPlayCountText": "0",
    "videoDurationSeconds": 0,
    "isRepost": "No",
    "repostedPostId": "N/A",
    "repostedText": "N/A",
    "repostedAuthorName": "N/A",
    "sourceType": "search",
    "sourceQuery": "咖啡",
    "searchTab": "Top",
    "hotSearchRank": 0,
    "hotSearchHeat": 0,
    "hotSearchLabel": "N/A",
    "hashtags": [],
    "mentions": [],
    "pictures": [
      "https://wx3.sinaimg.cn/mw2000/0076DOeAgy1ih5cr7ysioj32c0340qv5.jpg"
    ],
    "topComments": [],
    "scrapedAt": "2026-09-16T19:29:02.049Z",
    "error": null
  },
  {
    "imageUrl": "https://wx1.sinaimg.cn/orj480/0033ImPzly1ih5x55dft8j60u0140jvn02.jpg",
    "postId": "5343913961064173",
    "bid": "RiqoY4sQ5",
    "url": "https://weibo.com/2803301701/RiqoY4sQ5",
    "mobileUrl": "https://m.weibo.cn/detail/5343913961064173",
    "text": "【壹视界·#平陆运河如何跨越65米落差#通江达海？】#平陆运河在水上硬核搭电梯# 平陆运河全程水位落差高达65米，如何翻越这道“坎”，确保5000吨级船舶通航安全？河道上建“楼梯”：3座梯级枢纽，逐级消纳落差；枢纽里搭“电梯”：通过阀门抬升或降低水位，水托着船垂直升降，平移到下一级水面……技术攻关，创新突破，世界之“最”彰显平陆运河的硬核实力。戳视频了解↓↓↓ 人民日报的微博视频",
    "isLongText": "Yes",
    "createdAt": "2026-09-16T15:17:16.000Z",
    "postedFrom": "Not Disclosed",
    "client": "微博视频号",
    "likesCount": 314,
    "likesCountText": "314",
    "commentsCount": 152,
    "commentsCountText": "152",
    "repostsCount": 104,
    "repostsCountText": "104",
    "authorId": "2803301701",
    "authorName": "人民日报",
    "authorUrl": "https://weibo.com/u/2803301701",
    "authorAvatar": "https://wx4.sinaimg.cn/orj480/0033ImPzly8h8vgemh8kxj60sa0sadgw02.jpg",
    "authorVerified": "Yes",
    "authorVerifiedReason": "《人民日报》法人微博",
    "authorFollowers": 158000000,
    "authorFollowersText": "1.58亿",
    "authorFollowing": 3096,
    "authorPostsCount": 153139,
    "authorDescription": "人民日报法人微博。参与、沟通、记录时代。",
    "authorGender": "Male",
    "pictureCount": 0,
    "videoUrl": "https://f.video.weibocdn.com/o0/O5WokKSglx08AQS5hfN601041201vSJ10E010.mp4?label=mp4_720p&template=720x960.24.0&ori=0&ps=1Cx9YB1mmR49jS&Expires=1789590493&ssig=HaEh1EPNWP&KID=unistore,video",
    "videoTitle": "人民日报的微博视频",
    "videoPlayCount": 90000,
    "videoPlayCountText": "9万次播放",
    "videoDurationSeconds": 119,
    "isRepost": "No",
    "repostedPostId": "N/A",
    "repostedText": "N/A",
    "repostedAuthorName": "N/A",
    "sourceType": "user",
    "sourceQuery": "2803301701",
    "searchTab": "N/A",
    "hotSearchRank": 0,
    "hotSearchHeat": 0,
    "hotSearchLabel": "N/A",
    "hashtags": [
      "平陆运河如何跨越65米落差",
      "平陆运河在水上硬核搭电梯"
    ],
    "mentions": [],
    "pictures": [],
    "topComments": [],
    "scrapedAt": "2026-09-16T19:28:58.348Z",
    "error": null
  },
  {
    "imageUrl": "https://wx4.sinaimg.cn/mw2000/aafc85c3gy1ih62gg8pf7j20ow11eqia.jpg",
    "postId": "5343955102466205",
    "bid": "Rirtkalzv",
    "url": "https://weibo.com/2868676035/Rirtkalzv",
    "mobileUrl": "https://m.weibo.cn/detail/5343955102466205",
    "text": "#美联储时隔3年首次加息##美联储官宣加息25基点#【美联储加息25个基点 为2023年7月以来首次加息】#美联储点阵图显示今年将再加息1次#财联社9月17日电，美联储宣布将联邦基金利率目标区间上调25个基点，将基准利率上调至3.75%-4.00%。这是美联储自2023年7月以来首次加息。决策者们一致通过了该决定。美联储表示此举将推动通胀更快回归2%的目标。",
    "isLongText": "Yes",
    "createdAt": "2026-09-16T18:00:45.000Z",
    "postedFrom": "Not Disclosed",
    "client": "财联社（https://www.cls.cn）官方微博",
    "likesCount": 115,
    "likesCountText": "115",
    "commentsCount": 29,
    "commentsCountText": "29",
    "repostsCount": 63,
    "repostsCountText": "63",
    "authorId": "2868676035",
    "authorName": "财联社APP",
    "authorUrl": "https://weibo.com/u/2868676035",
    "authorAvatar": "https://wx4.sinaimg.cn/orj480/aafc85c3ly8h8vg6ezotfj2050050dfn.jpg",
    "authorVerified": "Yes",
    "authorVerifiedReason": "财联社（https://www.cls.cn）官方微博",
    "authorFollowers": 4552000,
    "authorFollowersText": "455.2万",
    "authorFollowing": 1354,
    "authorPostsCount": 355418,
    "authorDescription": "财联社|机构和私募主力都在使用的证券快讯APP",
    "authorGender": "Male",
    "pictureCount": 2,
    "videoUrl": "N/A",
    "videoTitle": "N/A",
    "videoPlayCount": 0,
    "videoPlayCountText": "0",
    "videoDurationSeconds": 0,
    "isRepost": "No",
    "repostedPostId": "N/A",
    "repostedText": "N/A",
    "repostedAuthorName": "N/A",
    "sourceType": "hotSearch",
    "sourceQuery": "美联储",
    "searchTab": "Top",
    "hotSearchRank": 1,
    "hotSearchHeat": 563933,
    "hotSearchLabel": "新",
    "hashtags": [
      "美联储时隔3年首次加息",
      "美联储官宣加息25基点",
      "美联储点阵图显示今年将再加息1次"
    ],
    "mentions": [],
    "pictures": [
      "https://wx4.sinaimg.cn/mw2000/aafc85c3gy1ih62gg8pf7j20ow11eqia.jpg",
      "https://wx1.sinaimg.cn/mw2000/aafc85c3gy1ih62dqnyrjj20s60b0acp.jpg"
    ],
    "topComments": [],
    "scrapedAt": "2026-09-16T19:29:07.314Z",
    "error": null
  }
]
```

With **Include top comments** on, `topComments` holds objects like this one (from a real run):

```
{ "commentId": "5342475414938361", "text": "代言人热巴每个自然状态都戳中Sisi的心巴～…", "likesCount": 15191, "replyCount": 2462, "createdAt": "2026-09-12T16:01:00.000Z", "location": "Not Disclosed", "authorId": "5929067685", "authorName": "Swisse斯维诗", "authorAvatar": "https://tva4.sinaimg.cn/…" }
```

### ✨ Why choose this Actor

| | What you get |
|---|---|
| **Four inputs in one run** | Keywords, profiles, post links and the hot-search board, merged into one deduplicated dataset. |
| **Real query results** | Search returns posts that match your keyword on Weibo's own search tabs, not the generic trending feed. |
| **Trending topics with context** | Each hot-search post carries the topic's rank, heat and label, so you can sort the conversation by how hot it is. |
| **Exact numbers and Weibo's label** | `authorFollowers` is 82524000 where Weibo printed `8252.4万`. Both are on the row. |
| **Honest caps** | Weibo pins big comment and repost counts at 1,000,000 and shows `100万+`. The row keeps that label so you never mistake a cap for an exact value. |
| **Full text, not the teaser** | Long posts are expanded automatically. |
| **Chinese kept intact** | UTF-8 end to end, emoji codes such as `[允悲]` preserved. |
| **No account needed** | Uses Weibo's public visitor access. Nothing to paste from your browser. |
| **Light and fast** | HTTP only, no browser, no proxy by default. |

### 📈 How it compares to alternatives

| Feature | This Actor | Typical Weibo scrapers | By hand |
|---|---|---|---|
| Fields per post | 50 | 10 to 30 | Whatever you copy |
| Inputs | Keyword, profile, post link, hot search | Usually one or two | One page at a time |
| Search tabs covered per keyword | 5, merged | 1 | 1 |
| Hot-search topic context on each post | Rank, heat, label | Board only, or none | Screenshot |
| Profile by handle or Chinese screen name | Yes | Numeric id only | Yes |
| Full text of long posts | Yes | Often truncated | Click "全文" |
| Exact counts plus the displayed label | Yes | One or the other | Displayed only |
| Top comments | Optional add-on | Separate Actor | Scroll |
| Login required | No | Some need your cookie | Yes, beyond page 1 |
| Posts per keyword | About 90 (first page of each tab) | Varies, often logged-in | As many as you scroll |

### 🚀 How to use

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Weibo Scraper](https://apify.com/parseforge/weibo-scraper?fpr=vmoqkp).
3. Add search keywords, profiles, post links, or a number of hot-search topics. Set Max Items and click **Start**.
4. Download the dataset as CSV, Excel, JSON or XML from the **Storage** tab, or read it through the API.

A first run that combines a keyword with the top 5 trending topics:

```
{ "searchKeywords": ["咖啡"], "hotSearchTopics": 5, "maxItems": 200 }
```

Free-plan runs return up to 10 posts as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 posts per run.

### 💼 Business use cases

**☕ Consumer brand research.** A beverage brand searches its own name and three competitors every morning, keeps the Latest and Hot tabs, and reads `text` with `likesCount` to see which product claims Chinese drinkers repeat.

**📣 Campaign and crisis monitoring.** A PR agency tracks a campaign hashtag and the brand name, joins rows on `postId` day over day, and watches `repostsCount` and `postedFrom` to see where a story is spreading.

**📈 Market-moving news.** A research desk covers the top 20 hot-search topics every hour and filters `authorVerified = Yes` to separate official accounts from commentary on topics like 美联储.

**🤝 Influencer discovery.** A marketing team runs niche keywords, groups rows by `authorId`, and ranks creators by `authorFollowers` and average likes before reaching out.

### 🔌 Automating Weibo Scraper

- **Make and Zapier:** run a keyword list every morning and append new posts to Google Sheets or Airtable.
- **Slack:** post an alert when a tracked keyword appears in a hot-search topic.
- **Airbyte:** sync the dataset into BigQuery, Snowflake or Postgres for a rolling Weibo warehouse.
- **GitHub Actions:** snapshot the hot-search board every hour and commit the CSV.
- **Google Drive:** save each weekly run as an Excel file in a shared folder.

### 🌟 Beyond business use cases

- **🎓 Research:** media scholars studying how topics climb the hot-search board, with exact timestamps and heat scores.
- **🧳 Personal:** follow a few favourite accounts and read their latest posts without an app.
- **🤝 Non-profit:** monitor public discussion of health, disaster relief or environmental topics in Chinese.
- **🧪 Experimentation:** a labelled Chinese-language dataset for sentiment and topic models.

### 🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant that can browse:

> Read https://apify.com/parseforge/weibo-scraper and tell me which fields it returns for a Weibo post, which inputs it accepts, and how many posts I can expect per keyword and per profile.

### ❓ Frequently Asked Questions

#### 🔎 How many posts do I get per keyword?

About 90 unique posts. Weibo shows a logged-out visitor only the first page of each search tab, so the Actor reads all five tabs (Top, Latest, Hot, Images, Videos) and merges them. The Images tab alone returns about 50. To go wider, add related keywords or #topics#.

#### 👤 How many posts do I get per profile?

The latest 10 to 20. Weibo asks for a login before a visitor can scroll further down a timeline. For older posts from a profile, paste their links into Post URLs: single posts have no limit.

#### 📝 Is there a limit on post links?

No. Every post link or id you list is fetched, as long as the post is public.

#### 🔥 How does the hot-search option work?

The Actor reads the live board (about 50 topics, ads removed), takes the top N you ask for, and searches each topic. Every post from that pass carries `hotSearchRank`, `hotSearchHeat` and `hotSearchLabel` such as 热 (hot) or 新 (new).

#### 🆔 Which profile formats are accepted?

Numeric ids (`1669879400`), `weibo.com/u/<id>`, `m.weibo.cn/u/<id>` and `m.weibo.cn/profile/<id>` links, custom handles such as `weibo.com/rmrb` or `rmrb`, and exact screen names such as `人民日报`.

#### 🔢 Why do some posts show exactly 1000000 comments?

Weibo caps comment and repost counters at one million and displays `100万+`. `commentsCountText` and `repostsCountText` keep that label, so you can tell a capped value from an exact one. Likes are not capped.

#### 📜 Is the full text included for long posts?

Yes. Weibo truncates long posts in search results and timelines. The Actor fetches the complete text automatically. You can switch that off with **Fetch full text of long posts** for a slightly faster run.

#### 💬 How many comments does the add-on return?

The first public page, about 20 comments per post, ordered by Weibo's hot ranking. Weibo requires a login for deeper pages. The add-on is billed only for posts where comments actually came back.

#### 🎬 Do the video links play?

Yes. `videoUrl` is the MP4 Weibo serves, usually 720p. The link is signed by Weibo and expires after a few hours, so download the file soon after the run.

#### 📍 What is `postedFrom`?

The province or country Weibo displays under a post as its IP location (发布于). It is `Not Disclosed` when Weibo does not show one.

#### 🈶 Is Chinese text kept as is?

Yes. Text, names and hashtags are stored in UTF-8 exactly as Weibo publishes them. Weibo's emoji appear as their codes, for example `[允悲]`.

#### 🛡️ Do I need a proxy?

Usually not. The proxy input is off by default. If a run ever comes back empty, switch on the Apify datacenter proxy and run again.

#### 🔁 Can the same post appear twice?

No. Rows are deduplicated on Weibo's post id, so a post found by two keywords or two tabs is delivered and billed once. The row keeps the first source that found it.

#### 📄 What output formats are supported?

CSV, JSON, Excel and XML, plus the Apify API and every integration on the Actor page.

#### ❌ What happens when a keyword, profile or link fails?

The Actor retries, then writes a row carrying only an `error` message, for example a deleted post or an unknown screen name. Error rows are never billed.

### 🔌 Integrate with any app

The dataset is available through the Apify API the moment the run finishes. Use the `run-sync-get-dataset-items` endpoint for one-shot calls, webhooks to trigger downstream jobs, or the Make, Zapier, Airbyte and LangChain integrations listed on the Actor page.

### 🔗 Recommended Actors

- [Bilibili Video Scraper](https://apify.com/parseforge/bilibili-video-scraper?fpr=vmoqkp)
- [Threads Search Scraper](https://apify.com/parseforge/threads-search-scraper?fpr=vmoqkp)
- [TikTok Hashtag Analytics Scraper](https://apify.com/parseforge/tiktok-hashtag-analytics-scraper?fpr=vmoqkp)
- [Reddit Posts & Comments Scraper](https://apify.com/parseforge/reddit-posts-comments-scraper?fpr=vmoqkp)
- [YouTube Comments Scraper](https://apify.com/parseforge/youtube-comments-scraper?fpr=vmoqkp)

***

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA) with your run ID, your input and what you expected.

> **⚠️ Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Sina Weibo or Sina Corporation. It collects only publicly available data that Weibo shows to logged-out visitors. You are responsible for using the data in compliance with Weibo's terms of use and applicable laws.

# Actor input Schema

## `searchKeywords` (type: `array`):

Words or #topics# to search on Weibo, in Chinese or any language. Each keyword returns the public first page of every selected search tab (roughly 60 to 90 unique posts per keyword).

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

Numeric user ids, profile links (https://weibo.com/u/1669879400, https://weibo.com/rmrb, https://m.weibo.cn/u/1669879400), custom handles or exact screen names such as 人民日报. Weibo shows visitors only the latest posts of a profile (about 10 to 20 per user).

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

Links to single posts (https://weibo.com/<uid>/<bid>, https://m.weibo.cn/detail/<id>) or bare post ids. No depth limit: every post you list is fetched.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `hotSearchTopics` (type: `integer`):

Take the top N topics of the live hot-search board and collect their posts. Each post carries the topic's rank, heat and label. 0 turns it off.

## `searchTabs` (type: `array`):

Weibo search tabs to read for every keyword and hot-search topic. Leave empty for all five.

## `fetchFullText` (type: `boolean`):

Weibo truncates long posts in lists. When on, the Actor fetches the complete text of those posts at no extra charge.

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

Adds the post's top comments (the first public page, up to about 20) with author, likes and location. Billed as a separate add-on event, only for posts where comments came back.

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

Apify proxy settings. Datacenter proxy is enough when needed.

## Actor input object example

```json
{
  "searchKeywords": [
    "咖啡"
  ],
  "maxItems": 10,
  "hotSearchTopics": 0,
  "searchTabs": [
    "1",
    "61",
    "60",
    "63",
    "64"
  ],
  "fetchFullText": true,
  "includeComments": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key post fields

## `fullData` (type: `string`):

Complete dataset with all 50 fields

# 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 = {
    "searchKeywords": [
        "咖啡"
    ],
    "maxItems": 10
};

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

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

```

## MCP server setup

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