# Weibo Scraper 微博 - Posts, Comments, Profiles, Search, No Login (`benthepythondev/weibo-scraper`) Actor

Returns Weibo (微博) posts with text, date, reposts, comments, likes, pictures and video links: an account's 100 newest posts without a cookie, its older posts with pictures or videos, any post by link with comments and replies, profiles, keyword search by date and the hot-search board. No login.

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

## Pricing

from $0.85 / 1,000 rows

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 (微博): Posts, Comments, Profiles, Search and Hot Search, No Login

Returns Weibo (Sina Weibo, 微博) posts with text, date, reposts, comments, likes, pictures and video links: the 100 newest posts of any account, its older posts with pictures or videos, any post by link with its comments and replies, account profiles, keyword search back in time and the hot-search board (微博热搜). It needs no login, no cookie and no browser. Export to JSON, CSV or Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

**Price:** $4.00 per 1,000 posts or profiles and $1.00 per 1,000 comments, replies or hot-search topics on the Apify Free plan, down to $3.40 and $0.85 from Gold up. Not charged: an account or post link that does not exist, a search without results, a post whose comments are closed, the whole text of a long post.

### What other Weibo scrapers state as their limits, and what this one does

The two most used Weibo Actors in the Store had no open or closed issue on October 6, 2026, so this table takes the limits from their own documentation.

| Their documentation says | This Actor |
|---|---|
| An account's posts need your own login cookie, "Weibo serves timelines only to signed-in sessions"; the other Actor has no account posts at all | The 100 newest posts of an account without any cookie, and the 100 newest of each kind (original, video, picture, article). With `olderPosts` it continues with the older posts that have pictures or videos: 894 picture posts back to 2011 and 135 video posts of an account with 1,936 posts in the test |
| Accounts by numeric id only; "custom addresses such as weibo.com/name are not resolved" | Numeric id, profile link, custom address (`weibo.com/sinatech`) or the exact name (`新浪科技`) |
| No comments (one Actor); comments at the price of a post, $0.035 each (the other) | Comments and replies as rows of their own at $0.001: the 2,000 newest comments of one post in 83 seconds, replies with the comment they stand under |
| Search returns about 14 posts a page and at most 50 pages a run | 50 posts per request, read back in time as far as the limit and the dates ask: 1,000 posts of one keyword in 88 seconds. A day five years back answers like a current one |
| Free plan: 25 rows a run, no runs through the API | The same Actor on every plan, through Console, API and schedules |
| Search rows carry no follower count of the author | `authorFollowers` is filled in search rows (rounded by Weibo above 10,000) and exact in an account's rows |
| One price for every row, comments and hot-search topics included: $0.035, or $0.019 to $0.075 depending on the plan | $0.004 a post or profile, $0.001 a comment, reply or hot-search topic |

### 🔎 What is the Weibo Scraper?

Weibo is China's largest microblog: accounts of people, brands, media and authorities, a comment section under every post and a hot-search board that shows what the country talks about. Its open API is closed to developers outside China. This Actor makes the same data requests as Weibo's desktop and mobile sites, as a visitor who is not logged in, and returns clean rows.

#### What data does it extract?

- **Posts:** whole text (long posts are completed), date in Beijing time, reposts, comments, likes, pictures in their largest size, video file link with cover and length, attached link, topics, posting device and region, pinned mark, and for a repost the quoted post with its own counts
- **Comments and replies:** text, date, likes, number of replies, author name, id, followers and region, and for a reply the comment it stands under
- **Profiles:** name, bio, exact followers, following and post counts, reposts, comments and likes received, verification with reason, location, creation date, birthday, company, credit level
- **Search results:** the posts for a keyword, newest first back in time or Weibo's 50 hottest
- **Hot search:** the board as it stands, with rank, heat value, label (热, 新, 沸, 爆), category and the time a topic entered the board

### ⬇️ Input

Fill in one or several of the first four fields.

| Field | Type | Default | What it does |
|---|---|---|---|
| `accounts` | array | | Numeric ids, profile links, custom addresses or exact names of accounts |
| `postUrls` | array | | Post links, numeric ids or short codes: `https://weibo.com/1749127163/RlpYngQoW`, `https://m.weibo.cn/detail/5351047314014682`, `RlpYngQoW` |
| `searchQueries` | array | | Keywords, Chinese or English |
| `hotSearch` | boolean | false | Adds the hot-search board |
| `maxResults` | integer | 20 | Posts per account and per search, topics of the board; up to 20,000 |
| `accountOutput` | string | `posts` | `posts`, `profile` (one row per account, no posts) or `both` |
| `postType` | string | `all` | `all`, `original` (no reposts), `video`, `picture`, `article`: each is its own list of 100 |
| `olderPosts` | boolean | false | Continue behind the newest 100 with the account's picture and video posts |
| `searchSort` | string | `newest` | `newest` (reads back in time) or `hot` (Weibo's 50 hottest posts for the words) |
| `postedAfter`, `postedBefore` | string | | A day such as `2026-09-01` (Beijing time) or an age such as `7 days`; for searches and accounts |
| `fullText` | boolean | true | Complete posts that Weibo's lists cut at about 140 characters, without extra charge |
| `maxCommentsPerPost` | integer | 0 | Comments to save under each post, up to 20,000 |
| `commentsSort` | string | `hot` | `hot` or `newest` |
| `includeReplies` | boolean | false | Replies under the comments, as rows of their own; they count towards the limit per post |
| `debug` | boolean | false | Log every request with its size and time |

#### Example input

The newest posts of two accounts with their profiles:

```json
{
  "accounts": ["新浪科技", "https://weibo.com/u/1749127163"],
  "accountOutput": "both",
  "maxResults": 100
}
```

Posts for a keyword from one week, newest first:

```json
{
  "searchQueries": ["比亚迪"],
  "postedAfter": "2026-09-28",
  "postedBefore": "2026-10-04",
  "maxResults": 2000
}
```

Two posts with their 200 hottest comments and the replies:

```json
{
  "postUrls": ["https://weibo.com/1749127163/RlpYngQoW", "https://m.weibo.cn/detail/5350984768294187"],
  "maxCommentsPerPost": 200,
  "includeReplies": true
}
```

The hot-search board:

```json
{
  "hotSearch": true,
  "maxResults": 50
}
```

### ⬆️ Output

Every row has a `type`: `post`, `comment`, `user` or `hot_search`. The dataset has a table view for each. `target` says which input entry a row belongs to, and the key-value record `SUMMARY` lists per entry how many rows were saved and how it ended.

A post:

```json
{
  "type": "post",
  "postId": "5351047314014682",
  "mid": "5351047314014682",
  "bid": "RlpYngQoW",
  "postUrl": "https://weibo.com/1749127163/RlpYngQoW",
  "text": "路上发现了几辆还没上牌的澎程N90 [酷]",
  "isTruncated": false,
  "createdAt": "Tue Oct 06 15:42:39 +0800 2026",
  "createdAtIso": "2026-10-06T15:42:39+08:00",
  "createdTimestamp": 1791272559,
  "source": "Xiaomi 18 Pro",
  "region": "北京",
  "repostsCount": 161,
  "commentsCount": 375,
  "attitudesCount": 3998,
  "commentsCurated": false,
  "authorId": "1749127163",
  "authorName": "雷军",
  "authorVerified": true,
  "authorFollowers": 27334341,
  "authorAvatar": "https://tvax4.sinaimg.cn/crop.0.0.1080.1080.1024/001Un9Srly8iguza3zz5rj60u00u0gp602.jpg?KID=…",
  "images": ["https://wx4.sinaimg.cn/large/001Un9Srly1ihq29slh3rj61400u07co02.jpg"],
  "videoUrl": null,
  "videoCover": null,
  "videoDurationSecs": null,
  "linkUrl": null,
  "linkTitle": null,
  "topics": [],
  "isPinned": false,
  "isRepost": false,
  "repostOf": null,
  "target": "account:雷军",
  "scrapedAt": "2026-10-06T22:11:39.368920+00:00"
}
```

A repost carries the quoted post in `repostOf` with its own `postId`, `bid`, `postUrl`, `text`, `createdAt`, `createdAtIso`, `repostsCount`, `commentsCount`, `attitudesCount`, `authorId`, `authorName`, `images` and `videoUrl`. The counts on the row itself are the repost's own.

A comment (a reply has `isReply: true`, the comment it stands under in `rootCommentId`, and `replyToCommentId` when it answers another reply):

```json
{
  "type": "comment",
  "commentId": "5351048828944594",
  "text": "昨天我也遇到了，忍不住停下车拍[嘻嘻]我后天也要提探索版了，雷总[嘻嘻] http://t.cn/AXWezGcb",
  "createdAt": "Tue Oct 06 15:48:40 +0800 2026",
  "createdAtIso": "2026-10-06T15:48:40+08:00",
  "likeCount": 214,
  "replyCount": 13,
  "authorId": "6363461340",
  "authorName": "雪卡同学",
  "authorVerified": false,
  "authorFollowers": 2437,
  "authorRegion": "广东",
  "postId": "5351047314014682",
  "postUrl": "https://weibo.com/1749127163/RlpYngQoW",
  "isReply": false,
  "rootCommentId": null,
  "replyToCommentId": null,
  "target": "posts:post links",
  "scrapedAt": "2026-10-06T22:06:50.152305+00:00"
}
```

A profile:

```json
{
  "type": "user",
  "userId": "2803301701",
  "screenName": "人民日报",
  "description": "人民日报法人微博。参与、沟通、记录时代。",
  "gender": "m",
  "location": "北京",
  "ipLocation": null,
  "followersCount": 158038626,
  "friendsCount": 3096,
  "statusesCount": 153968,
  "repostsReceived": 1184318157,
  "commentsReceived": 276638960,
  "likesReceived": 2528813908,
  "verified": true,
  "verifiedType": 3,
  "verifiedReason": "《人民日报》法人微博",
  "avatarHd": "https://tvax4.sinaimg.cn/crop.0.0.1018.1018.1024/0033ImPzly8h8vgemh8kxj60sa0sadgw02.jpg?KID=…",
  "coverImage": "https://wx1.sinaimg.cn/crop.0.0.640.640.640/0033ImPzly1gs64jwa7uyj60v90v9n1r02.jpg",
  "domain": "rmrb",
  "website": null,
  "profileUrl": "https://weibo.com/u/2803301701",
  "createdAt": "2012-07-22 02:28:35",
  "birthday": "1948-06-15 双子座",
  "company": "人民日报社",
  "sunshineCredit": "阳光信用极好",
  "target": "account:2803301701",
  "scrapedAt": "2026-10-06T22:08:29.445662+00:00"
}
```

A hot-search topic:

```json
{
  "type": "hot_search",
  "rank": 1,
  "title": "兰香去世时没戴红绳",
  "hotValue": 303420,
  "labelName": "热",
  "category": "剧集",
  "isHot": true,
  "isNew": false,
  "isPromoted": false,
  "url": "https://s.weibo.com/weibo?q=%23%E5%85%B0%E9%A6%99%E5%8E%BB%E4%B8%96%E6%97%B6%E6%B2%A1%E6%88%B4%E7%BA%A2%E7%BB%B3%23",
  "onBoardSince": "2026-10-06T23:26:20+08:00",
  "target": "hot:hot search",
  "scrapedAt": "2026-10-06T22:07:51.280222+00:00"
}
```

### 💰 What a run costs

| Apify plan | Per 1,000 posts or profiles | Per 1,000 comments, replies or hot-search topics |
|---|---|---|
| Free | $4.00 | $1.00 |
| Bronze | $3.80 | $0.95 |
| Silver | $3.60 | $0.90 |
| Gold, Platinum, Diamond | $3.40 | $0.85 |

A post or profile row costs two events, the row ($0.001) and the record ($0.003); a comment, reply or hot-search row costs the row only. Apify's standard start event ($0.00005 per run at the default memory) is the only other charge. With a maximum charge set for the run, the Actor stops when the next row would pass it, and a post whose comments were started still gets its own row.

Examples on the Free plan: the 100 newest posts of an account, $0.40. 1,000 posts for a keyword, $4.00. One post with 2,000 comments, $2.00. The hot-search board, $0.05. 100 profiles, $0.40. A daily check of five accounts with 20 posts and 20 comments each (100 posts, about 1,600 comments), $2.00.

### ⏱️ Measured (October 6, 2026, on a test server outside Apify)

| Run | Rows | Time |
|---|---|---|
| Sample input: the 20 newest posts of one account, long texts completed | 20 | 12 s |
| Three accounts by name, link and custom address: profile and six original posts each | 21 | 7 s |
| Ten profiles | 10 | 12 s |
| The hot-search board \* | 50 | 5 s |
| 20 posts by link \* | 20 | 8 s |
| Four post links with 25 comments and replies each | 84 | 13 s |
| One post with its 2,000 newest comments \* | 2,001 | 83 s |
| One keyword, the 1,000 newest posts \* | 1,000 | 88 s |
| One keyword on one day of September \* | 300 | 71 s |
| 150 posts for a keyword with up to 20 comments each | 487 | 64 s |
| Five accounts, 20 posts each with 20 comments \* | 1,670 | 53 s |
| One account, 400 posts with `olderPosts` \* | 400 | 178 s |

These times are from a server in Germany, not from Apify's network. Runs without a mark used the server's own address only; runs marked \* also read through three Apify datacenter proxy addresses. Peak memory was 81 MB in the 487-row run. A run of 60 account posts, 60 search posts and one post link with 40 comments each was killed after 9 seconds with 169 rows stored and started again on the same dataset: it ended with 121 posts and 2,548 comments, none of them twice.

Comment depth: a post that Weibo counts 1,164 comments on gave 1,056 comments to the end of its list in 87 seconds (the count includes replies and comments Weibo hides from visitors). On a post with 12,343 comments a probe read 6,383 comments in 320 requests and was stopped there; deeper is not tested.

### 🤖 For AI agents

No credential is needed and every target field is an array. Smallest useful calls:

```json
{"accounts": ["1642634100"], "maxResults": 20}
```

```json
{"searchQueries": ["人工智能"], "maxResults": 50}
```

```json
{"postUrls": ["https://weibo.com/1749127163/RlpYngQoW"], "maxCommentsPerPost": 50}
```

```json
{"hotSearch": true}
```

Rows are told apart by `type`. A run with nothing to return ends as succeeded with zero rows and a status message that says why.

### 💡 Use cases

- 📊 **Brand and topic monitoring in China:** search a brand name every day and read the posts with their comments
- 🧑‍💼 **KOL research:** profiles with exact follower counts and the newest posts of a shortlist of accounts with their reposts, comments and likes
- 🔥 **Trend tracking:** the hot-search board on a schedule, to chart how a topic rises and how long it stays
- 🧠 **Text data for analysis and model training:** whole post texts and comment sections in Chinese, with author and region

### ⚠️ Limits, stated plainly

- **An account shows a visitor its 100 newest posts.** Each kind (`original`, `video`, `picture`, `article`) is its own list of 100. Behind them, `olderPosts` returns the account's posts with pictures and its video posts as far back as the account shows them; text-only posts and reposts older than the newest 100 are not shown to a visitor and are not returned. The status message says so when an account has more.
- **Weibo's search is loose.** In a one-day search for `小米汽车`, 103 of 300 rows held the phrase, 68 both words apart, 111 one of them and 18 neither. For `比亚迪`, 884 of 1,000 rows had the word in their text. Filter on `text` when you need exact matches.
- **A search reads back in time, 50 posts per request.** A busy keyword has 1,000 posts in two days; a year of it is a long and costly run. Set `postedAfter`, `postedBefore` and `maxResults` to what you need. The `hot` order is 50 posts and no more.
- **Counts above one million:** Weibo shows a visitor reposts and comments of a post as 1,000,000 at most (`100万+`). Likes are exact.
- **Comments:** what a visitor can read. Weibo's comment count includes replies and hidden comments, so a complete list is shorter than the count. Where an author shows approved comments only (`commentsCurated: true`), a visitor gets those few or none.
- **`authorFollowers`** is exact in an account's own rows, rounded by Weibo in search rows (to hundreds above 10,000) and empty for a post given by link. Ask for the profile to get the exact number.
- **Links that expire or need a header:** video file links are signed and expire about an hour after the run; avatar links are signed as well and expire after a few hours. Picture links want the header `Referer: https://weibo.com/` (HTTP 403 without it).
- **Hot search** is the board at the moment of the run: 50 ranked topics plus the lines Weibo places on it (`isPromoted: true`, no rank). The pinned line above rank 1 is not included. There is no history; schedule runs to build one.
- **Speed:** Weibo turns an address away for about three minutes after roughly 180 requests in a minute. The Actor sends two requests a second per address and reads through up to four addresses (its own and Apify datacenter proxies). A post with comments, a long post and an older picture post each cost a request of their own.
- **Not available without login:** follower and following lists, an account's full timeline, Weibo's hot feed. `ipLocation` was empty for every account in the tests.
- **No memory between runs.** A scheduled run returns the current newest posts again; drop the ones you have by `postId`.
- **Dates are Beijing time** (UTC+8), in the input and in every row.

### ❓ FAQ

**Do I need a Weibo account, a cookie or an API key?** No. The Actor reads as a visitor who is not logged in.

**How many posts of an account can I get?** The newest 100, plus the newest 100 of each kind if you run the kinds one after the other, plus older posts with pictures or videos with `olderPosts`. Of an account with 1,936 posts the two older lists held 1,000 different posts in the test.

**Can I search a period in the past?** Yes. Set `postedBefore` to the last day of the period; the search starts there and reads back to `postedAfter`. A day in 2021 answered in the tests like a day of this week.

**Why are there fewer comments than `commentsCount`?** The count includes replies (switch on `includeReplies`) and comments that Weibo does not show to visitors. Authors can also limit a comment section to approved comments.

**Are long posts complete?** Yes, with `fullText` on (the default). Weibo's lists cut posts at about 140 characters; each cut post is completed with one more request and no extra charge. A row keeps `isTruncated: true` only when Weibo did not serve the rest.

**I use another Weibo Actor. What changes?** The input names `mode`, `searchQuery`, `searchAliases`, `userIds`, `postIds`, `maxComments`, `includeComments`, `fetchFullText`, `searchDateFrom`, `searchDateTo`, and `operation`, `keyword`, `userId`, `weiboId`, `startDay`, `endDay`, `maxPages` are read. Post, comment and profile rows use the field names `postId`, `repostsCount`, `commentsCount`, `attitudesCount`, `authorName`, `likeCount`, `screenName`, `followersCount` and so on. The differences: rows are told apart by `type` instead of `mode`; a value Weibo does not send is `null`; the names `weiboId`, `repostCount`, `postedAt` and `picUrls` are not written. Not offered: follower and following lists, the hot feed, Black Cat complaints, sentiment scores, province rollups, automatic brand translation and only-new runs. A run that asks for one of the first three says so and saves nothing.

**What happens when an account or post does not exist?** The run succeeds, the status message and `SUMMARY` name it, and nothing is charged for it.

**Can I get the pictures and videos themselves?** The rows hold the links. Fetch pictures with the header `Referer: https://weibo.com/`, and videos within the hour.

**Is it legal?** The Actor reads only what Weibo shows to any visitor without an account. Posts and comments contain personal data of their authors: use them for a lawful purpose, respect GDPR, China's PIPL and the rules of your own country, and do not use the data for spam or to target individuals.

### 🔗 You might also like

- [Bilibili Scraper](https://apify.com/benthepythondev/bilibili-scraper): videos, comments, creators and rankings of Bilibili
- [Threads Public Scraper](https://apify.com/benthepythondev/threads-public-scraper): posts of public Threads accounts
- [Telegram Channel Scraper](https://apify.com/benthepythondev/telegram-channel-scraper): posts of public Telegram channels
- [TikTok Comments Scraper](https://apify.com/benthepythondev/tiktok-comments-scraper): comments and replies of TikTok videos

**Keywords:** weibo scraper, weibo api, sina weibo scraper, 微博 爬虫, 微博 数据, weibo posts scraper, weibo comments scraper, weibo user profile, weibo search api, 微博热搜, weibo hot search, weibo trending, china social media scraper, chinese social listening, weibo kol monitoring, weibo no login, weibo no cookie, weibo data export

# Actor input Schema

## `accounts` (type: `array`):

Weibo accounts whose posts or profile you want: the numeric id (1642634100), a profile link (https://weibo.com/u/1642634100, https://weibo.com/sinatech, https://m.weibo.cn/u/1642634100) or the exact name (新浪科技). Returns the account's newest posts, up to 100 per account without any cookie, each with text, date, reposts, comments, likes, pictures and video link. Switch on `olderPosts` to continue with older posts that have pictures or videos.

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

Posts by link, id or short code: https://weibo.com/1642634100/RgdYdspWX, https://m.weibo.cn/detail/5338669536772939, 5338669536772939 or RgdYdspWX. Each returns the post with its whole text and current counts; set `maxCommentsPerPost` to add its comments. The same post given in two forms is read once. A post that is deleted or not shown to a visitor gives no row and no charge.

## `searchQueries` (type: `array`):

Keywords to search Weibo posts for, in Chinese or English, for example "比亚迪" or "iPhone". Returns the posts with the words from new to old, up to the limit below. Use `postedAfter` and `postedBefore` for a period; the search reads back as far as the period and the limit ask for, past the 1,000 results Weibo's own pages end at.

## `hotSearch` (type: `boolean`):

Adds the hot-search board as it stands now: about 50 topics, each a row with rank, title, heat value, label (热, 新, 沸, 爆), category and the time it entered the board. Paid lines are marked `isPromoted`. Run it on a schedule to chart a topic's rise.

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

Posts to save for each account and each search query, and topics of the hot-search board, up to 20,000. A post link is always one post. This is the main cost lever: every post row is charged.

## `accountOutput` (type: `string`):

`profile` returns one row per account and no posts: exact follower, following and post counts, reposts, comments and likes received, verification, bio, location, creation date, company.

## `postType` (type: `string`):

Which posts of an account to read. Every kind is its own list on Weibo with its own newest 100, so `original` reaches further back than `all` on an account that reposts a lot.

## `olderPosts` (type: `boolean`):

Weibo shows a visitor an account's 100 newest posts. With this on, and `maxResults` above 100, the run continues from new to old with the account's posts that carry pictures and with the videos of its video tab, as far back as the account shows them. Text-only posts and reposts older than the newest 100 are not shown to a visitor and are not returned. A picture post costs one request (two a second per address), so 1,000 older posts take a few minutes.

## `searchSort` (type: `string`):

`newest` returns posts from new to old and reads back as far as the limit and the dates allow. `hot` returns the 50 posts Weibo ranks hottest for the words and nothing beyond them.

## `postedAfter` (type: `string`):

Only posts published on or after this day (2026-09-01, a day in Beijing time like every date on Weibo) or within this age (7 days, 2 weeks). Applies to searches and accounts.

## `postedBefore` (type: `string`):

Only posts published up to the end of this day (Beijing time). A search starts reading at this moment, so a period years back costs no more than a current one.

## `fullText` (type: `boolean`):

Weibo's lists cut posts longer than about 140 characters. With this on, each cut post is completed with one more request and no extra charge. Off, such a row keeps the cut text and `isTruncated: true`, and a run is faster.

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

Comments to save under each post, up to 20,000; 0 saves none. Each comment and reply is a row of its own, charged at the comment price, with text, date, likes, reply count, author, the author's followers and region.

## `commentsSort` (type: `string`):

Which comments come first when the limit is smaller than the comment section.

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

Also saves the replies under each comment, each as a row with `isReply` and `rootCommentId`. They count towards the limit per post.

## `debug` (type: `boolean`):

Writes each request with its size and time to the log, for support.

## Actor input object example

```json
{
  "accounts": [
    "1642634100"
  ],
  "hotSearch": false,
  "maxResults": 20,
  "accountOutput": "posts",
  "postType": "all",
  "olderPosts": false,
  "searchSort": "newest",
  "fullText": true,
  "maxCommentsPerPost": 0,
  "commentsSort": "hot",
  "includeReplies": false,
  "debug": false
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "accounts": [
        "1642634100"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/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 = { "accounts": ["1642634100"] }

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

```

## MCP server setup

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