Weibo Scraper
Scrape Weibo search results, account posts, comments and the hot search list. Text, author, likes, reposts, pictures and place in every row. No login.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
searchTerms,maxPostsPerSearch,matchAllWords(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00185 per post = $1.85 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Post | One Weibo post returned in the dataset. Notes, the sample row and repeated posts are not charged. | $0.00185 |
| Comment | One Weibo comment or reply returned in the dataset. Notes and repeats are not charged. | $0.0046 |
| Hot topic | One topic from the Weibo hot list returned in the dataset. Notes are not charged. | $0.0046 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-10-03, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
searchTerms | Words to search Weibo for, one per line, in Chinese or any other language. Weibo shows people who aren't signed in the first page of each of its five result tabs (top, latest, hot, video, pictures), which usually comes to 50 to 90 different posts per search. Up to 100 searches a run. | array |
maxPostsPerSearch | Stop a search after this many posts. Weibo rarely has more than about 90 to show for one search, so a higher number returns what there is. | integer |
matchAllWords | Weibo's search also returns posts that match only part of a phrase, or match on a picture. On: a post is kept only when its text, the post it reposts or its topic card contains every word you searched (words are split on spaces, so 蔚来汽车 is one word and 蔚来 汽车 is two). Off: everything Weibo's search returns. Posts left out are never charged. | boolean |
users | Accounts to read, one per line: the numeric id (1749127163), a profile link (weibo.com/u/1749127163, weibo.com/n/雷军, weibo.com/rmrb, m.weibo.cn/u/1749127163) or the screen name, with or without @. Weibo shows people who aren't signed in an account's latest ten or so posts plus the latest of each kind (original, video, photo, article), usually 25 to 35 posts in all. | array |
maxPostsPerUser | Stop an account after this many posts, newest first. | integer |
postUrls | Posts whose comments you want, one per line: the post's link (weibo.com/2803301701/RkyFjzhSX, m.weibo.cn/detail/5348998178410235) or its id. | array |
maxCommentsPerPost | Stop a post after this many comments. Replies, when you ask for them, come on top of this. | integer |
commentsOrder | Newest first goes through every comment Weibo lists, latest at the top. Hot follows Weibo's ranking, which ends after about 300 comments. | string |
includeReplies | Also return the replies under each comment, as comment rows with parentCommentId set. Each reply is charged as a comment. | boolean |
maxRepliesPerComment | Weibo lists up to about 100 replies under one comment to people who aren't signed in. | integer |
hotList | Return Weibo's real-time hot search list: about 50 ranked topics with their heat figure and category, plus the pinned topic above them. The promoted slot in the list is left out. | boolean |
fullText | Weibo cuts long posts short in its lists. On: the whole text is fetched for each one. Off: those rows carry the shortened text, with textIsComplete set to false. | boolean |
What you get
A structured dataset — each result includes fields like:
recordTypecreatedAtauthorNametextlikescommentsrepostsurlauthorFollowerspostedFromsearchTermsearchTabaccountInputerrorCodemessagerepliesparentCommentIdreplyToNamepostUrlranktopicheatcategorylabelisPinnedenteredListAtsearchUrllistReadAtExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Search Weibo, read an account's latest posts, pull the comments under a post, or take the real-time hot search list: one row per post, comment or hot topic, with the text, the author and their follower count, likes, comments, reposts, pictures, video links and the place Weibo says it was posted from.
Weibo shows people who aren't signed in one page of results per search tab and an account's latest few dozen posts, and this actor doesn't sign in. So a search brings back 50 to 90 posts and an account about 30, however many exist. Comments don't have that limit: one test run took 2,000 from a single post in under two minutes.
| Input | Search terms, accounts (id, profile link or screen name), post links, or the hot search list switch |
| Output | One row per post, comment or hot topic: text, author, follower count, likes, comments, reposts, pictures, video link, place, time |
| Ceiling | About 50 to 90 posts per search and about 30 per account, which is what Weibo shows without signing in; 2,000 comments per post; 100 entries in each list per run |
| Speed | 10 to 20 seconds a search, 5 to 11 seconds an account, about 1,100 comments a minute |
| Account needed | None from you |
| Price | $1.85 per 1,000 posts, $4.60 per 1,000 comments, $4.60 per 1,000 hot topics, flat on every plan. The free plan's $5 a month covers about 2,700 posts |
🔍 What Weibo Scraper does
Four jobs, and one run can do all of them. Each runs only when you fill in its field.
- Search. Each term is looked up across Weibo's five result tabs (top, latest, hot, video, pictures), and a post found on two tabs is kept once.
- Accounts. An account's latest posts, newest first. Only its own, reposts it made included.
- Comments. The comments under a post, newest first or in Weibo's hot order, with their replies if you want them.
- Hot search list. The ranked list as it stands when the run reads it: about 50 topics with Weibo's heat figure.
Weibo cuts long posts short in its lists, so the whole text is fetched for each one. Every row is checked against what you asked before it goes in. A search post has to be a result of that search, an account's post has to be that account's, a comment has to belong to that post. Anything else is left out and not charged.
📋 What data you get from each Weibo post
| What you get | Field |
|---|---|
| The post's id, short id and link | id, bid, url |
| When it was posted, in UTC | createdAt |
| The whole text, and whether it is whole | text, textIsComplete |
| The author, their verified label and follower count | authorId, authorName, authorUrl, authorVerified, authorVerifiedReason, authorFollowers, authorFollowersText |
| Likes, comments and reposts | likes, comments, reposts, countsRounded |
| Topics, @mentions and outside links in the text | topics, mentions, links |
| Pictures, and how many the post has | images, imageCount |
| Video link, cover, length and plays | videoUrl, videoCoverUrl, videoDurationSeconds, videoPlays |
| The post it reposts | isRepost, repostOf |
| The place Weibo prints on it, and the line beside its time | postedFrom, sourceLabel |
| Pinned, and how many times it was edited | isPinned, editCount |
| Which search or account it came from | source, searchTerm, searchTab, accountInput |
| A comment: its post, text, likes, replies, author and place | postId, postUrl, text, likes, replies, parentCommentId, replyToName, authorName, authorFollowers, authorLocation, postedFrom |
| A hot topic: rank, words, heat, category, label, time on the list | rank, topic, heat, category, label, isPinned, enteredListAt, searchUrl |
▶️ How to scrape Weibo
1. Open Weibo Scraper and click Try for free. 2. Type words into Search terms, accounts into Accounts, post links into Posts for comments, or tick Hot search list. Any mix works. 3. Lower Posts per search, Posts per account or Comments per post while you're testing. 4. Click Start. 5. Download the rows as JSON, CSV or Excel, or read them through the Apify API.
Start it with every field empty to see the row shape first: one labelled sample post, not charged.
💰 How much does it cost to scrape Weibo?
$1.85 per 1,000 posts, $4.60 per 1,000 comments and $4.60 per 1,000 hot topics. Flat on every Apify plan, no volume tiers. A reply counts as a comment. On the free plan, the $5 Apify gives you each month covers about 2,700 posts, or about 1,050 comments.
You pay for rows that come back. The sample row and every note row are free, and so are posts the checks left out, repeats, and the promoted slot in the hot list. If you set a maximum charge for the run, it stops before the first row it couldn't pay for.
📥 What you give it
{
"searchTerms": ["咖啡", "华为 手机"],
"users": ["1749127163", "https://weibo.com/rmrb"],
"postUrls": ["https://weibo.com/2803301701/RkyFjzhSX"],
"maxCommentsPerPost": 200,
"hotList": true
}
| Field | Default | What it is |
|---|---|---|
searchTerms | none, the box starts at 咖啡 | Words to search for, one per line, in any language. Up to 100. |
maxPostsPerSearch | 50 | The most posts from one search, 1 to 100. Weibo rarely has more than 90 to show. |
matchAllWords | true | Keeps only posts whose text, reposted post or topic card holds every word you searched, split on spaces. Off returns everything Weibo's search does. |
users | none | Account ids, profile links (weibo.com/u/..., weibo.com/n/<name>, weibo.com/<custom address>, m.weibo.cn/u/...) or screen names. Up to 100. |
maxPostsPerUser | 30 | The most posts from one account, newest first, 1 to 50. |
postUrls | none | Post links (weibo.com/<account id>/<post id>, m.weibo.cn/detail/<id>) or post ids. Up to 100. |
maxCommentsPerPost | 100 | The most comments from one post, 1 to 2,000. Replies come on top. |
commentsOrder | newest | newest goes through every comment Weibo lists. hot follows Weibo's ranking, which ends near 300. |
includeReplies | false | Also returns the replies under each comment. |
maxRepliesPerComment | 20 | The most replies under one comment, 1 to 100. |
hotList | false | Returns the real-time hot search list. |
fullText | true | Fetches the whole text of posts Weibo cuts short. Off is quicker and leaves textIsComplete false on those rows. |
Two entries naming one account, an id and a screen name say, are read once. A setting outside its range stops the run before anything is fetched. An entry that isn't a Weibo link or id is skipped with a note, and the rest go ahead.
📤 What you get back
A real post from a search for 华为 手机 on 3 October 2026:
{
"recordType": "post",
"id": "5350042053381127",
"bid": "RkZOZebAj",
"url": "https://weibo.com/1278131290/RkZOZebAj",
"createdAt": "2026-10-03T13:08:07.000Z",
"text": "刚刷到一家华为门店在Mate90首销日卖了231台手机[哆啦A梦吃惊][哆啦A梦吃惊]",
"textIsComplete": true,
"authorId": "1278131290",
"authorName": "搞机大师兄",
"authorUrl": "https://weibo.com/u/1278131290",
"authorVerified": true,
"authorVerifiedReason": "数码博主",
"authorFollowers": 448000,
"authorFollowersText": "44.8万",
"reposts": 0,
"comments": 27,
"likes": 55,
"countsRounded": false,
"topics": [],
"mentions": [],
"links": [],
"images": ["https://wx3.sinaimg.cn/mw2000/4c2ebc5aly1ihpgye4uzlj210o274h0k.jpg"],
"imageCount": 1,
"videoUrl": null,
"videoCoverUrl": null,
"videoDurationSeconds": null,
"videoPlays": null,
"isRepost": false,
"repostOf": null,
"isPinned": false,
"postedFrom": "山东",
"sourceLabel": "数码博主",
"editCount": 0,
"source": "search",
"searchTerm": "华为 手机",
"searchTab": "top",
"accountInput": null,
"scrapedAt": "2026-10-03T15:08:27.798Z"
}
A comment and a hot topic from the same afternoon:
{
"recordType": "comment",
"id": "5350030405013535",
"postId": "5348998178410235",
"postUrl": "https://weibo.com/2803301701/RkyFjzhSX",
"parentCommentId": null,
"replyToName": null,
"createdAt": "2026-10-03T12:21:50.000Z",
"text": "祝祖国繁荣昌盛,国泰民安!",
"likes": 1,
"replies": 0,
"authorId": "7911007775",
"authorName": "无尽夏-Cecily",
"authorUrl": "https://weibo.com/u/7911007775",
"authorVerified": true,
"authorFollowers": 2753,
"authorLocation": "北京",
"postedFrom": "江苏",
"imageUrl": null,
"commentsOrder": "newest",
"postInput": "https://weibo.com/2803301701/RkyFjzhSX",
"scrapedAt": "2026-10-03T15:11:40.918Z"
}
{
"recordType": "hotTopic",
"rank": 1,
"topic": "爬珠峰的人都堵了",
"heat": 1686010,
"category": "幽默",
"label": "热",
"isPinned": false,
"enteredListAt": "2026-10-03T12:48:21.000Z",
"searchUrl": "https://s.weibo.com/weibo?q=%23%E7%88%AC%E7%8F%A0%E5%B3%B0%E7%9A%84%E4%BA%BA%E9%83%BD%E5%A0%B5%E4%BA%86%23",
"postUrl": null,
"listReadAt": "2026-10-03T15:07:58.138Z",
"scrapedAt": "2026-10-03T15:07:58.138Z"
}
| Field | How to read it |
|---|---|
authorFollowers | Weibo rounds big accounts in its lists, so 448,000 here was "44.8万". authorFollowersText is the figure as Weibo printed it. |
countsRounded | true when Weibo gave a post's likes, comments or reposts rounded, such as "100万+". |
postedFrom | The province or country Weibo prints on a post or comment for where it was sent from. null when it prints none. |
authorLocation | The place a commenter wrote on their own profile, which can differ from postedFrom. |
sourceLabel | The line Weibo prints beside the time: the app or phone on an account's posts, the author's label in search results. |
imageCount | How many pictures the post has. images holds the ones Weibo lists, nine at most. |
videoUrl | Stops working an hour after the row was read, so download a video you want to keep. Picture links don't expire that way. |
searchTab | The result tab a post was first found on: top, latest, hot, video or pictures. |
rank, heat | A topic's place on the list and Weibo's heat figure. The pinned topic above the list has neither. |
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A post | recordType: "post" | yes, as a post |
| A comment or a reply | recordType: "comment"; a reply has parentCommentId | yes, as a comment |
| A hot topic | recordType: "hotTopic" | yes, as a hot topic |
| The sample row | recordType: "sample", _sample: true | no |
| A note | recordType: "diagnostic", _diagnostic: true, an errorCode | no |
errorCode | What happened |
|---|---|
NO_RESULTS | Weibo has no posts for that search. |
NO_MATCHES | Weibo found posts, but none hold every word of the search. |
WITHHELD | Weibo doesn't show results for that search. |
USER_NOT_FOUND | No account matches that id, link or name. |
USER_UNAVAILABLE | Weibo says the account can't be viewed, usually because it was suspended. |
NO_POSTS | The account shows no posts to people who aren't signed in. |
POST_NOT_FOUND | The post doesn't exist or was deleted. |
POST_HIDDEN | Only some readers can see the post, so its comments can't be read. |
NO_COMMENTS | The post has no comments, or Weibo lists none. |
PARTIAL | Weibo stopped answering partway. What came before is in the dataset. |
NOT_ANSWERED | Weibo didn't answer for that entry this time. Run it again later. |
NOT_REACHED | The run stopped first, at your maximum charge or its time limit. |
BAD_INPUT | An entry or a setting that can't be used. |
MAX_CHARGE_TOO_LOW | Your maximum charge doesn't cover one row, so nothing was fetched. |
SETUP | Skipped because of a problem on our side. |
To keep only the data, filter on recordType being post, comment or hotTopic. RUN_REPORT in the run's key-value store lists every entry with its status and how many rows it gave.
💡 What people use it for
- Hearing what Chinese buyers say about a brand. Schedule a daily search for its name and keep the post ids you haven't seen.
- Following newspapers, officials or creators without the app: their latest posts with likes and comments, newest first.
- Reading the reaction under one post, a launch or a public apology, 2,000 comments deep.
- Watching what trends. Read the hot list every hour and you have each topic's rank and heat across the day.
From a trending topic to what people say about it, in three runs:
1. Tick Hot search list and pick topics from the topic column. 2. Put them into Search terms and sort the posts on comments. 3. Put the url of the posts you want into Posts for comments.
🚧 What it does not do
- No full history. An account gives its latest 30 or so posts and a search 50 to 90, because that's what Weibo shows without signing in. It doesn't sign in.
- No date range on searches. Weibo's own advanced search asks you to sign in. Filter on
createdAtafterwards. - No follower lists, no lists of who liked or reposted.
- Nothing hidden from the public. Posts limited to friends or fans stay hidden.
- Weibo's hot order ends near 300 comments. Newest first goes through all of them.
- About 100 replies per comment at most, as many as Weibo lists.
🧭 Which Chinese social media scraper do you need?
| If you want | Use |
|---|---|
| Weibo posts, comments and the hot search list | This one |
| Douyin's trending topics | Douyin Hot Search Scraper |
| Xiaohongshu (RedNote) notes | RedNote Scraper |
| Xiaohongshu (RedNote) profiles | RedNote Profile Scraper |
| Bilibili videos, rankings and comments | Bilibili Scraper |
| Posts on X by keyword | Twitter (X) Search Scraper |
❓ Questions people ask
Do I need a Weibo account to scrape Weibo?
No. It reads what Weibo shows anyone who isn't signed in, and needs no login, cookie or API key from you.
Why do I get fewer posts than I see in the Weibo app?
The app is signed in and keeps loading as you scroll. Someone who isn't signed in gets one page per search tab and an account's latest few dozen posts. Open m.weibo.cn in a private browser window: what you see there is what this actor can read. Counts keep moving too, so compare against scrapedAt.
Why are some follower counts round numbers?
Weibo writes big accounts as 44.8万 or 1.6亿 in its lists. authorFollowers turns that into a number with the same rounding, and authorFollowersText keeps Weibo's own text.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/weibo-scraper. Either way it runs on your Apify account at the same price.
Is scraping Weibo legal?
It reads public posts, public comments and the public hot list. Names and comments are still personal data under laws such as GDPR and China's PIPL, and Weibo has its own terms of use, so have a reason and read them. Apify's write-up on scraping and the law is a starting point; we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page and send the run ID with the entries you used. The status message and RUN_REPORT say which entry fell short.