Weibo Scraper: Posts, Search, User Profiles & Comments
Pricing
$4.00 / 1,000 item returneds
Weibo Scraper: Posts, Search, User Profiles & Comments
Export Weibo posts by keyword, user or post URL with full text, repost, comment and like counts, pictures and video URLs, plus user profiles with exact follower counts and comments. $4 per 1,000 rows; no Weibo login or cookies.
Pricing
$4.00 / 1,000 item returneds
Rating
0.0
(0)
Developer
Changefeeds Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
- What you get: Weibo (新浪微博) posts with full text, repost, comment and like counts, pictures, video URL, author, posting region and the reposted original; user profiles with exact follower counts and verification; and top-level comments.
- Inputs: search keywords, user ids or profile URLs, and post URLs, mixed in one run. No Weibo account and no cookies from you: it uses the anonymous visitor cookie Weibo gives every browser.
- Price: $4 per 1,000 rows (posts, profiles or comments), proxy included. Failed inputs are free.
Sample output
The prefilled input (user 1669879400, 10 posts), run on 2026-10-23, returned
one profile row and 10 post rows. The profile: Dear-迪丽热巴, 82,548,688
followers, 294 following, 1,939 posts, verified ("嘉行传媒签约演员"), location
上海. Five of the posts:
| bid | date | text (start) | reposts | comments | likes | pics | video |
|---|---|---|---|---|---|---|---|
| Rnvl7xXo1 | 2026-10-20 | 百年匠心传承,只为此刻融情。感受Lindt瑞士莲巧克力在舌尖悄然绽放 | 1,000,000 (capped) | 1,000,000 (capped) | 5,358,666 | 0 | yes |
| RlZog45UR | 2026-10-10 | 忙碌间隙,别忘了给自己留15分钟的松弛时间 | 1,000,000 (capped) | 1,000,000 (capped) | 3,265,953 | 0 | yes |
| RkxApEnWy | 2026-09-30 | #迪奥二零二七夏季女装秀# 以时装为载体 | 1,000,000 (capped) | 1,000,000 (capped) | 20,294,131 | 1 | no |
| Rknb371Yx | 2026-09-29 | 已经做好了美美的看秀妆造 | 1,000,000 (capped) | 1,000,000 (capped) | 7,873,717 | 9 | no |
| RjLlrBL6d | 2026-09-25 | 都吃月饼了嘛😋 | 1,000,000 (capped) | 1,000,000 (capped) | 2,873,511 | 6 | no |
"Capped" is Weibo's own "100万+" display limit: the real count is at least
1,000,000, and the row says so with countsCapped: true.
One post row in full (textHtml shortened):
{"type": "post","id": "5348956699625162","mid": "5348956699625162","bid": "RkxApEnWy","url": "https://weibo.com/1669879400/RkxApEnWy","createdAt": "2026-09-30T13:15:19.000Z","text": "#迪奥二零二七夏季女装秀# 以时装为载体,呈现了一场关于经典艺术与浪漫诗意的时尚美学。很幸运能在现场沉浸式欣赏,感谢@DIOR迪奥 邀请。","textHtml": "<a href=\"https://m.weibo.cn/search?containerid=231522type%3D1%26t%3D10%26q%3D%2…","isLongText": false,"fullTextFetched": false,"reposts": 1000000,"comments": 1000000,"likes": 20294131,"countsCapped": true,"pics": ["https://wx3.sinaimg.cn/mw2000/001P0DUIgy1ihm06574scj642z53du1302.jpg"],"videoUrl": null,"videoCover": null,"user": { "id": "1669879400", "screenName": "Dear-迪丽热巴", "followers": null, "followersText": "8254.9万", "verified": true },"retweeted": null,"source": null,"region": "法国","input": "1669879400","inputType": "user","scrapedAt": "2026-10-23T03:49:51.375Z"}
And the profile row (avatar shortened):
{"type": "user","id": "1669879400","screenName": "Dear-迪丽热巴","url": "https://weibo.com/u/1669879400","description": "一只喜欢默默表演的小透明。工作联系jaywalk@jaywalk.com.cn 🍒","followers": 82548688,"followersText": "8254.9万","following": 294,"statusesCount": 1939,"verified": true,"verifiedType": 0,"verifiedReason": "嘉行传媒签约演员","gender": "f","location": "上海","avatar": "https://tvax1.sinaimg.cn/crop.0.0.1080.1080.1024/63885668ly8geyrcrw0zjj20u00u0mz6.jpg?…","customDomain": null,"input": "1669879400","scrapedAt": "2026-10-23T03:49:51.375Z"}
How to run in 30 seconds
- Click Try for free. The input already holds the user
1669879400and 10 posts. - Click Start. Our test run of that input took 15 seconds and cost $0.044 (1 profile, 10 posts).
- Open the Output tab, or export the dataset as CSV, JSON or Excel.
For your own data, replace the user with uids or profile URLs, or fill in Search keywords or Post URLs instead. Tick Include comments to add comments for every post the run returns.
Pricing
- $0.004 per row returned ($4 per 1,000 post, user or comment rows). Proxy traffic is included.
- Free: failed inputs (
not_found,invalid,blocked,error). - If you set a maximum total charge, the actor stops before fetching pages it
could not sell, and says so in
OUTPUT.stopped_reason("max_total_charge_reached").
FAQ
Do I need a Weibo account or cookie? No. The actor gets Weibo's anonymous visitor cookie itself, as a browser does on its first visit.
Why did a keyword return fewer posts than I asked for? Logged-out Weibo
search serves only the first page of each tab. OUTPUT.truncated says so.
Can I get a user's full history? Their newest posts plus their full video history, yes. Older text and photo posts need a logged-in session, which this actor does not use.
What is the difference between mid and bid? The same post id in two
encodings: mid is numeric (5348645916642028), bid is the base62 form in
weibo.com URLs (Rkpv9rRTu). Both are on every post row.
Limits
- Logged-out Weibo shows only so much, and this actor never logs in. Weibo
serves visitors the first page of each feed and asks for a login from page 2:
- Search returns at most the first page of six search tabs (top, latest, hot, pictures, videos, one more), merged and de-duplicated. For "华为" that was 87 distinct posts; niche keywords give fewer.
- User posts come from the first page of the timeline and profile tabs
(roughly the newest 10 to 25 posts), then from the video wall, which does
paginate logged-out. Beyond the first couple of dozen posts you therefore
get video posts only. The run reports this in
OUTPUT.truncatedaslogged_out_limit. - Comments come from weibo.com's paginated comments endpoint (top-level,
hot order). Replies to comments are counted in
replies, not returned as rows. If that endpoint fails, the actor falls back to the mobile hot-comments feed, which gives only its first page.
- Reposted posts are summarised from what Weibo sends with the repost; a long original is not expanded.
- Rate limits and login walls. When Weibo answers "login required" or HTTP
418, the actor gets a fresh visitor cookie, then moves to a new proxy session,
up to 8 times for that request, and only then gives up that input with a free
blockedrow. Residential proxy is the default for that reason. - Counts are a snapshot, and Weibo caps displayed reposts and comments at
1,000,000 (see
countsCapped). - Polite by design: about 400 ms between requests, at most two inputs in flight, HTTP 429/5xx retried with backoff (Retry-After honoured up to 60 s, 3 retries), 20 s timeouts. No CAPTCHA solving, no accounts.
- Public data only. Private accounts, deleted posts and anything that needs a login are out of scope.
Input reference
You can mix the three kinds of input in one run.
| Field | Type | Default | What it does |
|---|---|---|---|
searchKeywords | list of strings | none | Each keyword returns up to maxItems posts from Weibo search. |
users | list of strings | none | Each user returns one profile row plus up to maxItems of their posts. Accepts 1669879400, weibo.com/u/<uid>, weibo.com/<uid>, weibo.com/<custom domain>, weibo.com/n/<screen name>, m.weibo.cn/u/<uid>, m.weibo.cn/profile/<uid>, @<screen name>. |
postUrls | list of strings | none | Each returns one post row. Accepts weibo.com/<uid>/<bid>, m.weibo.cn/detail/<mid>, m.weibo.cn/status/<bid>, weibo.com/detail/<mid>, or a bare mid (5348645916642028) or bid (Rkpv9rRTu). |
includeComments | boolean | false | Also return comments for every post the run returns. |
maxItems | integer | 50 | Max posts per keyword and per user (1 to 1,000). |
maxComments | integer | 20 | Max comments per post (1 to 1,000). |
proxy | proxy settings | Apify residential | See Limits. Proxy traffic is included in the price. |
{ "searchKeywords": ["华为"], "maxItems": 100 }
{ "postUrls": ["https://weibo.com/1669879400/Rkpv9rRTu"], "includeComments": true, "maxComments": 45 }
Output reference
A comment row (live run, 2026-09-30):
{"type": "comment","id": "5348546372437370","postId": "5348478804824358","postBid": "Rkl9Ckf2e","createdAt": "2026-09-29T10:04:49.000Z","text": "我怎么我今天去线下,promax是12g开头啊🙀","textHtml": "我怎么我今天去线下,promax是12g开头啊🙀","likes": 1,"replies": 5,"floor": 11,"region": "浙江","user": { "id": "7875740762", "screenName": "共鸣198108", "followers": 73, "verified": false },"scrapedAt": "2026-09-30T05:24:40.125Z"}
A failed input gets one free status row instead, and the run carries on:
{ "type": "status", "input": "Qa1b2c3d4", "inputType": "post", "status": "not_found", "error": "Post not found (deleted, private, or never existed).", "checkedAt": "2026-09-30T05:26:04.091Z" }
status is not_found, invalid (not a uid, URL or id this actor
recognises), blocked (Weibo still asked for a login after a fresh visitor
cookie and every proxy rotation), or error (any other failure).
- Long posts that Weibo truncates are expanded with one extra request
(
isLongText,fullTextFetched). user.followerson post rows isnullwhen Weibo gives only a rounded figure there ("8254.9万"); the rounded string is infollowersText, and theuserprofile row has the exact count.regionis the posting region Weibo shows ("发布于 上海");sourceis the posting client when Weibo gives one.- Picture and avatar URLs are Weibo's CDN links; video URLs are signed and expire after a few hours, so download promptly if you need the files.
The key-value store record OUTPUT summarises the run: rows by type, the
charged count, stopped_reason, HTTP requests, proxy rotations, response bytes,
and a truncated list naming every keyword, user or post that returned fewer
rows than you asked for, with the reason (logged_out_limit,
max_total_charge_reached, repeated_cursor or error). Every run leaves at
least one dataset row.