Weibo Scraper - Profiles, Posts, Comments & Hot Search
Pricing
$1.00 / 1,000 results
Weibo Scraper - Profiles, Posts, Comments & Hot Search
Collect public Weibo profiles, recent posts, top comments and the ranked hot search list. Export text, media links, likes, reposts, follower counts and verification as JSON, CSV or Excel for China brand monitoring and media research.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Weibo Scraper
Weibo Scraper collects public Weibo profiles, recent posts, comments and the ranked Weibo hot search list for brand monitoring and media research in China. It returns structured records that you can export as JSON, CSV or Excel and join using stable user, post and comment IDs.
Use it to follow a list of brands or creators, inspect individual public posts, read the discussion attached to those posts, or take a snapshot of what is trending on Weibo right now. You can combine these inputs in one run. Keyword search is outside the scope of this actor.
What the Weibo Scraper returns
Profiles include the account name, biography, follower count, following count, total number of posts and verification information. Posts include plain text, publish time in UTC, likes, comments, reposts and available image or video links. Comments carry their own IDs, the parent post ID, author information, text, publish time and likes. Embedded replies are returned as comment records with a parent comment ID.
The Weibo hot search output includes the ranked list of up to 50 topics, with the topic name, rank, available heat value and public topic URL. A pinned topic has no numerical rank. It is saved separately in the pinned_topics key-value record and does not count as a paid dataset row.
| Record type | One row per | Key fields |
|---|---|---|
profile | Weibo account | profile_id, name, bio, followers, following, posts_count, verified, verified_reason |
post | Public post | post_id, post_url, text, posted_at, likes, comments_count, shares, hashtags, images, video_url |
comment | Public comment or embedded reply | comment_id, parent post ID, author information, text, publish time, likes |
trending_topic | Ranked hot search entry | topic, rank, hot_value, url, query, is_hashtag |
Use cases for this Weibo scraper
- Brand monitoring in China. Follow official brand accounts and competitors, and record follower growth, posting frequency and engagement on each new post.
- Campaign tracking. Supply the URLs of campaign posts and collect likes, reposts, comment counts and the top public comments after launch.
- Media and public-opinion research. Sample the discussion under news posts, or archive the Weibo hot search list at regular intervals to see which topics rise and fall.
- Creator and KOL vetting. Check verification status, follower counts and recent engagement before working with a Weibo creator.
- Trend dashboards. Schedule the trending list every hour and load the rows into a spreadsheet, a BI tool or a database through the Apify API.
Input
Supply users as a list of numeric Weibo user IDs or profile URLs. Supported profile forms include weibo.com/u/<uid>, weibo.com/<uid>, m.weibo.cn/u/<uid>, m.weibo.cn/profile/<uid> and /n/<name> profile URLs. Named URLs are resolved to a numeric account ID. Custom vanity paths are not supported.
Supply posts as a list of 16-digit post IDs, 9-character Weibo bids or post URLs. Supported forms include desktop URLs containing the author ID and bid, /detail/<mid> URLs and mobile /status/<mid-or-bid> URLs. Duplicate references to the same post are collected once. Blank input lines are ignored. Each input list accepts up to 100 entries.
Set includeTrending to true to collect the current hot search list. At least one user, post or trending request is required. The example below uses the public Xiaomi account captured in the included research responses.
{"users":["1771925961"],"includeProfile":true,"includePosts":true,"maxPostsPerUser":10,"fullText":true}
includeProfile and includePosts default to true. Disable either when you only need the other kind of record. includeComments defaults to false; enable it for comments on both timeline posts and explicitly supplied posts. maxCommentsPerPost defaults to 20 and accepts values from 1 to 40. fullText defaults to true and requests the full text of long posts when it is publicly available.
maxPostsPerUser defaults to 10 and accepts values from 1 to 20. Values above 10 also inspect the first page of original posts, which can add posts absent from the main timeline. maxItems limits the combined number of dataset rows across all record types. Its default is 10,000; its maximum is 100,000. A lower total limit can stop collection before every requested record type has been reached.
Output
Each dataset row has record_type and _type, identifying profile, post, comment or trending_topic. Common fields include source, platform, fetched_at, input and a stable row_id. The input field identifies the supplied entry that produced the record. Retrieval and publish timestamps use UTC.
Profile identifiers are strings in profile_id; post identifiers are strings in post_id; comment identifiers are strings in comment_id. Keeping these identifiers as text avoids spreadsheet rounding. Posts and comments include plain text alongside the original text_html. Image emoji contribute their text descriptions to the plain-text version. The hashtags list on posts contains unique lowercase hashtag names.
Results follow input order: a user's profile, posts and associated comments come first, explicitly requested posts follow, and trending topics come last. The run output also records warnings and a partial flag when a requested operation could not finish. Apify follows continuation requests automatically. Direct API clients can forward next_cursor as cursor while keeping all other input values identical.
Example profile row
This is a real row produced from a response collected on 5 October 2026 for the public Xiaomi account.
{"record_type": "profile","_type": "profile","row_id": "profile:1771925961","source": "weibo-scraper","platform": "weibo","fetched_at": "2026-10-05T04:10:51.636Z","input": "1771925961","profile_id": "1771925961","profile_url": "https://weibo.com/u/1771925961","handle": "小米公司","name": "小米公司","bio": "让全球每个人都能享受科技带来的美好生活。","followers": 13931000,"followers_text": "1393.1万","following": 998,"posts_count": 25426,"verified": true,"verified_type": 2,"verified_reason": "小米科技有限责任公司","gender": "m","avatar_url": "https://wx2.sinaimg.cn/orj480/001VUOSZly8gpb1minl2wj60u00u03ze02.jpg","cover_url": "https://wx3.sinaimg.cn/crop.0.0.640.640.640/001VUOSZly1iexk8h8gw9j61o01o0ts402.jpg","mbrank": 6,"urank": 48,"svip": 0}
Example hot search row
A real trending_topic row from the Weibo hot search list collected on the same day. Topic names are returned in Chinese, exactly as Weibo shows them.
{"record_type": "trending_topic","_type": "trending_topic","row_id": "trending_topic:年轻人开始不买景区冤种三件套了","source": "weibo-scraper","platform": "weibo","fetched_at": "2026-10-05T04:10:51.636Z","input": "trending","topic": "年轻人开始不买景区冤种三件套了","url": "https://m.weibo.cn/search?containerid=100103type%3D1%26t%3D10%26q%3D%23%E5%B9%B4%E8%BD%BB%E4%BA%BA%E5%BC%80%E5%A7%8B%E4%B8%8D%E4%B9%B0%E6%99%AF%E5%8C%BA%E5%86%A4%E7%A7%8D%E4%B8%89%E4%BB%B6%E5%A5%97%E4%BA%86%23&stream_entry_id=31&isnewpage=1&extparam=seat%3D1%26stream_entry_id%3D31%26lcate%3D5001%26realpos%3D1%26flag%3D0%26dgr%3D0%26c_type%3D31%26filter_type%3Drealtimehot%26cate%3D5001%26q%3D%2523%25E5%25B9%25B4%25E8%25BD%25BB%25E4%25BA%25BA%25E5%25BC%2580%25E5%25A7%258B%25E4%25B8%258D%25E4%25B9%25B0%25E6%2599%25AF%25E5%258C%25BA%25E5%2586%25A4%25E7%25A7%258D%25E4%25B8%2589%25E4%25BB%25B6%25E5%25A5%2597%25E4%25BA%2586%2523%26band_rank%3D1%26pos%3D0%26display_time%3D1791171210%26pre_seqid%3D17911712108330405488667&launchid=10000360-page_H5","post_count": null,"hot_value": 1160599,"label": null,"query": "#年轻人开始不买景区冤种三件套了#","is_hashtag": true,"rank": 1}
Public-data limits
Without a login, Weibo shows the first timeline page of an account, generally around ten recent posts. It does not provide a complete historical timeline, even when the account's total post count is much larger. Reading the original-post page can produce additional unique records but does not unlock older pages.
Public comments cover one hot-comment page, generally up to twenty top comments, plus at most two pages of recent comments when a limit above twenty is requested. Overlap is removed. Embedded replies count toward the selected limit. These lists are a sample of the public discussion and may contain fewer comments than requested.
Follower counts above 10,000 are rounded by Weibo. The original display string is included as followers_text. Repost and comment counts can be capped at 1,000,000; counts_capped flags affected posts. Hot search heat measures search interest, not the number of posts, so post_count remains null. Some ranked topics have no available heat value. Media links can expire after collection.
Weibo scraper compared with other options
- Copying from the Weibo app or website by hand works for a few posts, but it does not give you engagement counts in a table, stable IDs or a repeatable schedule.
- The official Weibo Open Platform is built for apps that act on behalf of signed-in users and requires a developer application and approval. This actor reads only what is publicly visible and needs no Weibo account.
- Open-source Weibo crawlers on GitHub give you full control, but you maintain the parsing, the session handling and the output format yourself whenever Weibo changes. Here you get one documented schema for profiles, posts, comments and trends.
- Other Weibo scrapers in the Apify Store differ in scope and price. Some focus on keyword search or a single record type; this actor covers profiles, posts, comments and the hot search list in one run, charges only for delivered rows and has no separate start fee.
Pricing
The Weibo Scraper charges one result event per delivered dataset row, regardless of record type. Pinned topics, warnings and missing records do not create result events, so an empty run costs nothing in result events. There is no actor start event. Consult the actor's Pricing tab for the active event price before running it; the listing price is controlled there.
Users without a paid Apify plan receive up to ten dataset rows per run. The total row cap includes profiles, posts, comments and ranked topics together. Paid users can select higher limits. A record that cannot be fetched is reported through warnings instead of an artificial dataset row.
FAQ
Can I search posts by keyword?
No. This actor accepts profile references, post references and the trending list. It does not provide keyword search, follower lists or historical timeline traversal.
Do I need to provide an account login?
No account login is required for the supported public surfaces. There is no login-cookie input. If Weibo restricts a record, the run reports the restriction and preserves records already collected.
Can I use this as a Weibo hot search API?
Yes. Set includeTrending to true and leave the user and post lists empty. Each run returns the current ranked hot search list as rows. You can call the actor from the Apify API, schedule it, and read the dataset as JSON or CSV.
Why does the returned follower count differ from an exact count?
Weibo rounds large follower counts on its public mobile profile surface. Use followers_text to retain the source display, and treat followers as the numerical interpretation of that rounded value.
Why are fewer comments returned than the post's comment count?
The public comment pages expose selected and recent comments, rather than every comment. The configured maximum is a ceiling. Deleted records, overlap and unavailable public pages can reduce the number delivered.
Is the text translated?
No. Posts, comments and topics are returned in the original language, usually Chinese, so that your own translation or sentiment tools see exactly what Weibo users wrote.