Weibo Scraper — Posts, Comments, Profiles & Hot Search avatar

Weibo Scraper — Posts, Comments, Profiles & Hot Search

Pricing

from $0.63 / 1,000 posts

Go to Apify Store
Weibo Scraper — Posts, Comments, Profiles & Hot Search

Weibo Scraper — Posts, Comments, Profiles & Hot Search

Scrape Weibo (微博) posts by keyword with no page cap and a date range, plus comments, replies, likers, author profiles and hot search lists. No login, no cookie. Export JSON, CSV, Excel.

Pricing

from $0.63 / 1,000 posts

Rating

0.0

(0)

Developer

Nice Dev

Nice Dev

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

🔎 What is Weibo Posts Scraper?

Weibo Posts Scraper extracts posts, comments and replies, likers, account profiles, followers and the hot search lists from Weibo (微博), China's largest public social network: full text, likes, comments and reposts, pictures and videos, topics and mentions, the province it was posted from, and the author's followers and verification — for brand monitoring, market research, opinion tracking or KOL lists in China.

Type a keyword (小米, #华为#), add accounts or posts, or paste any Weibo URL, click Start, and download the results in JSON, CSV or Excel. No Weibo account, no cookie, nothing to set up — and the keyword search goes back in time as far as you ask, not only the first page Weibo shows to visitors.

📋 What data can you extract from Weibo?

One row per result — a post, a comment, a liker, an account profile, a follower, an account followed or a hot topic — 173 fields:

CategoryWhat you get
📝 Postfull text (plain and as Weibo shows it), link, publication date (UTC and Beijing time), edits, the app it was sent from — 握草我的手机刚刚重重一摔…小米牛逼
📊 Engagementlikes, comments, reposts and their total, reads when Weibo shows them — 1,204 likes · 87 comments · 35 reposts
📍 Where it was postedprovince or country as Weibo shows it under the post (发布于 广东), in Chinese and in English, city, place and map position when the post is tied to one
🖼️ Pictures and videoevery full-size picture, the video (best quality and every quality, cover, title, length, plays, orientation), the link or article card
#️⃣ Topics and mentions#topics#, super topics (超话), mentioned accounts, every link of the text
🔁 Repost and marksrepost or original, the original post (text, author, counts), promoted post (ad), pinned post, Weibo's label and statements on the post
👤 Authorname, ID, picture, bio, followers (2.7万 = 27,000), follows, posts, verification (orange or blue V) and its reason, membership level, badges
💬 Comments (optional)text, date, likes, replies, floor, commenter and their region, liked by the post's author, and the replies to each comment
❤️ Likers (optional)the accounts that liked a post: name, followers, verification, membership, when they liked it
📇 Contacts (optional)e-mails, phone numbers, WeChat / QQ ids, the business-contact line and the agency written in the bio or verification text of the account
🌡️ Sentiment (optional)a tone score from -1 (negative) to +1 (positive) and a label (negative, neutral, positive) for each post and each comment or reply, computed on the text already read
🪪 Profile (optional)exact follower count, bio, website, verification, account creation date, IP location (IP属地), birthday, credit level, company, school
👥 Followers and following (optional, needs your cookie)the accounts that follow an account, and the accounts it follows: the same account columns as the likers, plus the account whose list it is
🔥 Hot listsHot search (热搜), Entertainment (文娱), Life (生活) and Topics (话题榜): rank, title, heat, label 热 / 新 / 沸, category, time on the list, and the change since your previous run
🔗 Where it comes fromthe keyword, hot topic, account or URL that found it, its rank in the results

Every field, with an example, is listed in the Output section below.

✅ Why use Weibo Posts Scraper?

  • 🔎 Deep keyword search: Weibo shows visitors one page per keyword. This Actor goes back in time page after page — months and years back — as deep as Max results, with a date range that starts the search right at the day you ask for.
  • 🧩 All of public Weibo in one Actor: keyword searches, posts by ID or URL, accounts (latest posts, videos, profile), comments and replies, likers, author profiles, the four hot lists and the posts of each hot topic, Weibo's hot feed by channel (财经, 科技, 汽车…) — combined in one run.
  • 📈 Hot lists with history: each run tells you which entries are new on the list, their rank and heat change since your previous run, their best rank and highest heat.
  • 🎯 Filters Weibo does not have: likes, reposts, comments and author followers minimums, verified accounts only, original posts only, pictures or video only, no ads, provinces, excluded words, every word of the keyword.
  • 🔔 Monitoring built in: tick Only new posts, schedule the Actor, and each run returns (and charges) only the posts it has never delivered before. Each keyword search stops at the oldest post delivered by the previous run (a run cut short by its maximum cost, its timeout or an abort: the next one also gives the older posts it missed).
  • 🔐 No login needed: no Weibo account, no cookie to hand over. A cookie of your own is optional, to read an account's feed beyond its first 10 posts, or the lists of its followers and of the accounts it follows (see Weibo cookie (optional)).
  • 🔌 API, scheduling, monitoring, integrations (Make, Zapier, n8n, Google Sheets…) and JSON/CSV/Excel export via the Apify platform.

🚀 How to scrape Weibo

  1. Create a free Apify account.
  2. Open Weibo Posts Scraper and type a Search keyword (e.g. 小米).
  3. Or add Account IDs, Post IDs, or paste Weibo URLs (a post, an account, a search page) into Weibo URLs.
  4. Set Max results (100 by default, 0 = no limit) — and Max posts per search when you run several keywords — then click Start.
  5. Download the dataset in JSON, CSV, Excel or via API.

💰 How much does it cost to scrape Weibo?

This Actor uses pay per event pricing: a price per post saved, plus a small fee per run start. Comments, likers, account profiles, hot topics, full texts, contacts and sentiment scores are options, off by default, each charged by its own event: leave them unticked to pay for the posts alone.

Apify planPostComment or replyLikerProfileHot topicFull textFollowerContactSentimentPost checked by a filter
Free$0.81$3.59$3.59$0.81$0.45$2.19$1.39$4.49$1.79$0.055
Bronze$0.80$3.58$3.58$0.80$0.41$2.18$1.38$3.79$1.78$0.045
Silver$0.72$3.57$3.57$0.72$0.40$2.17$1.37$3.09$1.59$0.035
Gold$0.63$3.56$3.56$0.63$0.39$2.16$1.19$2.29$1.39$0.025

Prices per 1,000, plus $0.01 per run start ($1 per 100 runs). Platform usage (compute, proxy) is included in the price. Example: 1,000 posts about a brand on the Free plan ≈ $0.82; with the sentiment score of each post ≈ $2.61.

  • Posts already delivered (Only new posts) are not charged again.
  • Full text is charged only for a long post whose full text was read in this run; Contact only for a row where at least one contact was found; Sentiment only for a post or comment written in Chinese.
  • Follower rows need your own Weibo cookie.
  • The filters Weibo does not apply itself (dates, likes, reposts, comments and followers minimums, verified, original, media, ads, provinces, excluded words, every word) are checked by the Actor on every post it reads, kept or not: Post checked by a filter is charged per post checked.

⚙️ Input

{
"query": "小米",
"maxItems": 500
}

Several keywords, a cap per keyword, only recent posts, only the ones not delivered before:

{
"searchQueries": ["小米", "华为", "#新能源汽车#"],
"maxItemsPerQuery": 200,
"postedAfter": "7 days",
"minLikes": 10,
"onlyNew": true,
"stateKey": "phone-watch"
}

Posts and accounts, with their comments, likers and profiles:

{
"postIds": ["5354231135473812"],
"userIds": ["1749127163"],
"accountData": ["posts", "profile"],
"includeComments": true,
"includeReplies": true,
"includeLikers": true,
"maxItems": 100
}

The hot search list and the posts of each hot topic:

{
"includeHotSearch": true,
"hotBoards": ["realtime", "entertainment"],
"maxHotTopics": 20,
"maxPostsPerHotTopic": 30,
"maxItems": 600
}

The posts of the hot topics count in Max results (maxItems): set it to at least topics × posts per topic, or the last topics get no post.

FieldNotes
query, searchQueriesKeyword or phrase, as typed in the Weibo search box (Chinese works best: 小米; a topic: #华为#); searchQueries adds more searches (max 100 searches per run, on top of Search keyword).
sortBylatest (real-time tab 实时: no depth cap, works with the date range), hot (热门) or top (综合): Weibo's own ranking, about 10 posts per keyword.
matchAllWordsKeep only the posts that contain every word of the keyword (Weibo also returns posts with only some of them).
searchAccounts, includeKeywordStatsFor each keyword, also save the accounts Weibo finds for it (the first 20, as Profile rows), and its topic row (discussions, reads, participants, as one Hot topic row).
startUrlsWeibo URLs: a post (https://weibo.com/<uid>/<bid>, https://m.weibo.cn/detail/<mid>), an account (https://weibo.com/u/<uid>) or a search page (https://s.weibo.com/weibo?q=...).
postIdsPosts by ID: the 16-digit number (5354231135473812) or the short code (RmKNzmXZi).
userIdsAccounts by numeric ID (1749127163) or profile URL.
accountData, maxPostsPerUser, maxVideosPerUserWhat to save for each account: its latest posts (10 at most as a visitor: Weibo shows no more; up to 1,000 with your cookie) and / or its profile; also its video posts (about 20).
cookieOptional. Your own Weibo cookie (a secret field), to read an account's feed beyond its first 10 posts, or its follower and following lists: see Weibo cookie (optional) below. Empty = you read as a visitor.
maxFollowersPerUser, maxFollowingPerUserOff at 0. For each account of userIds (or account URL), save up to this many of its followers / of the accounts it follows (5,000 at most each), as Follower rows. Needs your cookie: the run refuses to start without it. Not tested with a real account yet.
hotBoards, includeHotSearch, maxHotTopics, maxPostsPerHotTopicThe hot lists: realtime (热搜, about 50), entertainment (文娱, 50), life (生活, 50), topics (话题榜, paged); how many entries of each, and the latest posts of each entry (0 = entries only).
hotChannels, includeHotTimelineWeibo's hot feed (热门微博): the main feed, or channels by name (财经, 科技, 汽车; 66 in all) or by ID.
includeComments, maxCommentsPerPost, commentSortThe comments of each post (20 per page read), the newest first or Weibo's most liked first. 0 = all the comments Weibo shows.
includeReplies, maxRepliesPerCommentWith the comments: the replies to each comment, marked as replies with their parent comment.
includeLikers, maxLikersPerPostThe accounts that liked each post. 0 = all the likers Weibo shows.
includeAuthorProfilesOne Profile row for each new post author (exact followers, bio, verification, creation date, IP location, birthday, credit level), each author once per run.
includeContactsFind e-mails, phone numbers, WeChat / QQ ids and business-contact lines in the account bio and verification text (post authors, profiles, likers, followers, accounts followed); charged as Contact per row where at least one is found, no extra request. Off = the six contact fields stay empty.
includeSentimentAdd a tone score (-1 negative … +1 positive) and a label to each post and each comment or reply, computed on the text already read (the full text when fetchFullText read it); charged as Sentiment per row scored, no extra request. Chinese text only: a text with no Chinese character gets no score and is not charged. Profiles, likers, followers, accounts followed and hot topics get no score. Off = the two sentiment columns stay empty.
fetchFullTextWeibo cuts posts longer than about 140 characters: tick to read the full text of each cut post. Off = the cut text, marked as cut.
maxItems, maxItemsPerQueryStop after this many posts for the whole run / for each keyword, hot topic or search URL (0 = unlimited). Comments, likers, profiles and hot topics have their own caps.
postedAfter, postedBeforePublication date range, Beijing time: 2026-09-01, or a period before now (7 days, 24 hours, 2 weeks).
provincesOnly the posts published from these provinces or regions, in Chinese (广东, 北京) or in English (Guangdong, Beijing).
contentTypeall, pictures, videos or media (pictures or video).
excludeKeywordsDrop the posts whose text, reposted text or author name contains one of these words (抽奖, 广告); the full text of a cut post is read for it.
originalOnly, verifiedOnly, excludePromotedOriginal posts only (no repost), verified accounts only (orange or blue V), no promoted posts.
minLikes, minReposts, minComments, minFollowersMinimum likes, reposts, comments, author followers (0 = no minimum).
stateKey, onlyNew, resetStateMonitoring: only the posts never delivered under this memory key (phone-watch); resetState forgets the memory.
Advanced: proxyConfiguration, maxConcurrency, maxRequestsPerMinute, minRequestIntervalMs, maxRequestRetries, debugLogApify proxy by default, included in the price (the residential proxy is not available); speed, retries and debug messages.

📦 Output

A post (shortened: empty fields left out):

{
"type": "post",
"id": "5354311888406436",
"url": "https://weibo.com/7223148563/RmMTOzgTG",
"foundBy": "search",
"searchQuery": "小米",
"rank": 2,
"scrapedAt": "2026-10-15T07:55:43.449Z",
"postId": "5354311888406436",
"mid": "5354311888406436",
"bid": "RmMTOzgTG",
"mobileUrl": "https://m.weibo.cn/detail/5354311888406436",
"text": "握草我的手机刚刚重重一摔。。不是摔到地上那么简单。是摔到马桶上然后再到地上。……小米牛逼。[衰][作揖][good]",
"textLength": 190,
"isLongText": false,
"textTruncated": false,
"createdAt": "2026-10-15T07:54:55.000Z",
"createdAtBeijing": "2026-10-15 15:54:55",
"likeCount": 0,
"commentCount": 0,
"repostCount": 0,
"totalInteractions": 0,
"region": "河北",
"regionEn": "Hebei",
"province": "河北",
"city": "秦皇岛",
"country": "中国",
"imageCount": 0,
"isRepost": false,
"isPromoted": false,
"isPinned": false,
"authorId": "7223148563",
"authorName": "wawjknnnnnn",
"authorUrl": "https://weibo.com/u/7223148563",
"authorVerified": false,
"authorVerifiedType": -1,
"authorFollowersCount": 11,
"authorFollowersText": "11",
"authorFollowingCount": 137,
"authorPostsCount": 1616,
"authorGender": "f",
"authorMemberRank": 2,
"searchUrl": "https://s.weibo.com/realtime?q=%E5%B0%8F%E7%B1%B3",
"authorUserRank": 4
}

You can download the dataset in various formats such as JSON, HTML, CSV or Excel. The dataset has five views — Overview, Comments, Profiles and likers, Followers and following, Hot search — each with the columns of its kind of row.

All 173 fields

FieldsWhat you get
type, id, url, foundBy, searchQuery, searchUrl, rank, scrapedAtResult: post, comment, liker, profile, follower, following or hotTopic; its Weibo ID, its weibo.com page; how it was reached (search, hotTopic, hotTimeline, account, post, url), the keyword or hot topic and its search page, the rank in the results or on the list, ISO timestamp
postId, mid, bid, mobileUrlPost IDs: the 16-digit post ID (also on comment and liker rows), the short code of weibo.com links, the m.weibo.cn page
text, textHtml, textLength, isLongText, textTruncated, contentStatementsText: plain text (line breaks, #topics# and @mentions kept), the text as Weibo returns it (links, emoticon pictures), its length, cut by Weibo or not, cut in this row or not, statements Weibo shows on the post
createdAt, createdAtBeijing, editedAt, editCountDates: publication (ISO UTC, and YYYY-MM-DD HH:mm:ss Beijing time), last edit and number of edits
likeCount, commentCount, repostCount, totalInteractions, readCountEngagement at scrape time; the total = likes + comments + reposts; reads when Weibo shows them
source, region, regionEn, province, city, country, latitude, longitude, placeNameWhere: the app it was sent from (iPhone客户端), the region Weibo shows under the post (commenter's region on a comment) and in English, province, city, country, the place the post is tied to and its position
images, imageCount, picIdsPictures: full-size URLs, their number, their Weibo IDs
videoUrl, videoStreams, videoCoverUrl, videoTitle, videoDurationSeconds, videoPlayCount, videoPageUrl, videoOrientationVideo: best-quality mp4 (a link that expires about an hour after the run) and every quality, cover, title, length in seconds, plays, its durable weibo.com page, horizontal or vertical
linkUrl, linkTitle, linkType, linkSummaryCard attached to the post (article, web page, video, topic): URL, title, kind, summary
topics, superTopics, topicId, mentions, links#topics# (without #), super topics (超话), the main topic page, @mentioned accounts (without @), URLs of the text
isRepost, repostOf, originalPostId, isPromoted, isPinned, contentLabelRepost and marks: repost or not, the original post (ID, link, text, date, author, counts), its ID; promoted post (ad), pinned on its author's page, Weibo's label (热门)
authorId, authorName, authorUrl, authorAvatarUrl, authorDescription, authorGenderAuthor of the post or comment: ID, name, page, picture, bio, gender as declared
authorVerified, authorVerifiedType, authorVerifiedReason, authorBadgesverified (V) or not; -1 none, 0 person (orange V), 1-7 organisation (blue V), 220+ personality; the text of the verification; the badges next to the name
authorFollowersCount, authorFollowersText, authorFollowingCount, authorPostsCount, authorTotalInteractionsfollowers (from Weibo's rounded display: 2.7万 = 27,000; exact on Profile rows) and the display itself, follows, posts, likes + comments + reposts received
authorMemberRank, authorUserRank, authorIsSvip, authorMemberType, authorIsVvip, authorIsVplusmembership level, user level, SVIP, membership kind, VVIP, V+
commentId, parentCommentId, rootCommentId, isReply, replyToUserName, replyToUserId, replyCount, floorNumber, isLikedByAuthorComment: its ID, the comment a reply answers and the first one of the thread, reply or not, the account answered, replies, floor under the post, liked by the post's author
userId, screenName, userUrl, avatarUrl, description, gender, weihao, customDomain, websiteAccount (liker, profile, follower and following rows): ID, name, page, picture, bio, gender, Weibo number (微号), personal address, website
contactEmails, contactPhones, contactWechat, contactQq, businessContact, agencyContacts (option includeContacts, empty otherwise; post, profile, liker, follower and following rows): e-mails (obscured forms like name(at)163.com read), phones (Chinese mobiles as +86 + 11 digits, landlines like 010-12345678, international +…), WeChat ids, QQ numbers, the line of the bio that gives a business contact, the agency / MCN named; nothing found = [] / null
sentimentScore, sentimentLabelSentiment (option includeSentiment, null otherwise; post and comment rows): the tone of the text from -1 (negative) to +1 (positive), 3 decimals, and its label negative / neutral / positive; a text with no Chinese character has no score (null)
verified, verifiedType, verifiedTypeExt, verifiedReason, badgesverification, its type (same codes as the author's), its extra level (1 = gold V), its text, the badges next to the name
followersCount, followersText, followingCount, postsCount, totalLikes, totalComments, totalReposts, totalInteractionsText, favoritesCount, videoCount, videoPlaysTotal, mutualFollowCount, followingPagesCountfollowers (exact on Profile rows) and as displayed, follows, posts, likes, comments and reposts received by all its posts, their total as displayed, favourites, videos and their plays, mutual follows, pages followed
memberRank, isSvip, memberType, isVvip, isVplus, memberExpiresAtmembership level, SVIP, membership kind, VVIP, V+, end of the paid membership
location, ipLocation, birthday, registeredAt, sunshineCredit, company, school, profileLabels, coverImageUrlProfile: location written on it, IP location (IP属地), birthday or star sign, account creation date, credit level, company and school when public, activity lines (昨日发博56), cover picture
likedAtLiker: when the account liked the post (ISO UTC when Weibo gives the time)
ofUserId, ofUserName, fanUidFollower / Following: the account whose list the row comes from (its ID and its name), and the ID of the listed account (the same as userId). The id of the row is follower:<ofUserId>:<uid> or following:<ofUserId>:<uid>: the same account in two lists is two rows
title, heat, label, category, isAd, onboardAt, minutesOnBoard, isTopic, board, isGovernmentTopic, leadPostUrl, starNamesHot topic: the entry, its heat, label 热 / 新 / 沸 / 爆, category, promoted entry, when it entered the list and minutes since, topic page or plain word, which list (realtime, entertainment, life, topics), pinned by Weibo at the top, its lead post, the celebrities linked to it
isNew, firstSeenAt, previousRank, rankChange, peakRank, previousHeat, heatChange, peakHeatHot list history (same Memory key): new since the previous run, first seen, previous rank and change (positive = climbing), best rank, previous heat and change, highest heat
discussCount, summary, imageUrl, topicReadCount, topicHostId, topicHostName, keywordParticipantsTopic (Topics list and Keyword stats): discussions, summary, picture, reads, the account hosting the topic page, people taking part in the keyword's conversation

💡 Tips

How to get more results

Leave Search tab on latest and raise Max results: the search goes back in time page after page, with no cap of one page. Set Posted before to start right at an older date. Combine keywords, accounts, posts and hot lists in one run, and set Max posts per search so that one big keyword does not use up the whole budget.

How to reduce costs

The price is per post saved, so the levers are Max results, Max posts per search, the filters (a filtered-out post costs only its small filter fee) and Only new posts for recurring runs (you never pay twice for the same post). Comments, likers, profiles, followers, hot topics and full texts are charged per row or per post completed: leave them off when you need the posts alone, and cap them with their own caps (Comments per post, Likers per post, Followers per account…). The date range also makes the keyword search start at Posted before and stop at Posted after: the posts outside it are mostly never read, so never charged.

Several searches in one run

Fill More search keywords (max 100 searches per run, on top of Search keyword), Account IDs, Post IDs and Weibo URLs: each keyword, account, post and URL is a source of its own. A post found by several sources is saved — and charged — once.

Monitoring: only the new posts

Tick Only new posts (onlyNew) and schedule the Actor. The first run returns everything; each later run skips the posts already delivered: they are not saved and not charged, and their comments and likers are not read again. The memory lives in a named key-value store of your account (weibo-posts-scraper-seen, up to 150,000 posts per key) and is only updated with posts that really reached the dataset, so a failed run never hides anything. Give each schedule its own Memory key (two schedules sharing a key would hide each other's posts), and tick Reset the memory once to start over. Hot topics are not filtered: every run gives the current list, with what changed since the previous run. A profile row already delivered under the same key is not given again; so is a follower or following row (the same account in the same list of the same account), which makes the Actor a way to watch for new followers. The memory holds up to 150,000 ids per key, posts, profiles and followers together: give a list-heavy schedule its own Memory key.

Weibo shows visitors the 10 latest posts of an account, and shows the lists of its followers and of the accounts it follows to signed-in users only. To read more of an account's feed (Posts per account above 10, up to 1,000), or these two lists (Followers per account and Following per account, up to 5,000 each, charged as Follower rows, off at 0), give the cookie of your own Weibo account in Your Weibo cookie (optional); leave it empty and everything else works as before. A list asked for without a cookie is refused before the run starts.

How to copy it:

  1. Log in to weibo.com in your browser.
  2. Open the developer tools (F12), then the Network tab, and reload the page.
  3. Click any request to weibo.com, find the Cookie request header and copy its whole value. It must contain SUB=.
  4. Paste it in the field. It is a secret field: Apify hides it.

Your account is used for the next pages of the account feeds and for the follower and following lists only, and for nothing else; we never store or log it. If Weibo refuses the cookie or it has expired, the Actor stops reading that feed or that list at once, keeps the rows it already saved and says "Your Weibo cookie was refused or expired" in the last line of the log: copy a fresh cookie and run it again. Rows that were not read are not charged. Use an account of your own: Weibo may ask it to log in again after heavy use.

Not tested with a real account yet, neither the feed pages nor the follower and following lists: the Actor reads the lists the way Weibo shows them to a signed-in user, but we have not seen a real answer. If something fails, tell us in the Issues tab.

Filter by publication date

Posted after and Posted before take a date (2026-09-01, the whole day is included, Beijing time) or a period before now (7 days, 2 weeks, 1 month). The keyword search stops as soon as it reaches posts older than Posted after, and starts directly at Posted before. Comments, likers, profiles and hot topics are not filtered by date. Each post the date filter checks, kept or not, is charged the small filter fee.

🔌 Integrations and API

Call the Actor via the Apify API, the JavaScript or Python clients, or connect it with integrations and webhooks (Make, Zapier, n8n, Google Sheets, Slack, Airtable…). The dataset can be fetched as JSON or CSV from any tool.

🤖 Use with AI agents (MCP)

AI agents (Claude, ChatGPT, Cursor…) can find and run this Actor through the Apify MCP server, billed to their Apify account like any run. It returns one row per Weibo result: a post, a comment, a liker, an account profile, a follower, an account followed or a hot topic (type says which). Actor id: nice_dev/weibo-posts-scraper; MCP server with this Actor only: https://mcp.apify.com/?tools=fetch-actor-details,nice_dev/weibo-posts-scraper.

Smallest input, for a cheap first call:

{
"query": "小米",
"maxItems": 10
}

Key output fields: type, url, text, createdAt, likeCount, commentCount, repostCount, authorName, region.

Cost: a price per post saved plus a small fee per run start; the Actor's own filters and the options (comments, likers, profiles, followers, hot topics, full text; all off by default) cost extra, see the pricing section above. Cap each call with maxItems and, through the API, with the run option maxTotalChargeUsd.

❓ FAQ

The Actor only reads what Weibo shows publicly to any visitor, without an account. It logs in to nothing by itself: the optional cookie is yours, used only for your own run. Results contain personal data (names, bios, posts, comments, the region a post was sent from, e-mail addresses people wrote in their bio), which is protected by China's Personal Information Protection Law (PIPL), by GDPR and by similar laws: do not store it without a legitimate reason, and delete what an author has deleted. You are responsible for using the data in compliance with Weibo's Terms of Service and applicable law. This Actor is not affiliated with Weibo or Sina.

Does it need a Weibo account or a proxy?

No account is needed, and no cookie unless you want an account's feed beyond its first 10 posts, or the lists of its followers and of the accounts it follows (see Weibo cookie (optional)). The proxy is included in the price: leave the default setting (the residential proxy is not available). A request Weibo turns away is retried at once with a fresh visitor session and proxy, up to 10 times on top of the retries (without a proxy, after a pause of 5 seconds, doubled at each retry up to 150 seconds).

Is the data safe to open in Excel or to show on a web page?

Posts, comments and bios are their authors' own words, copied as they are. A text can begin with -, +, = or @ (a mention, -20% today): Excel and Google Sheets may read such a cell of a CSV file as a formula. The Actor leaves the text as it is, so that the JSON and the API give the real value: when you open a CSV, import these columns as text. textHtml is the post as Weibo returns it, with its links and pictures: the Actor does not sanitize it. On a web page, escape every field like any text written by a stranger.

Known limitations

Weibo shows some pages to logged-in users only, and this Actor logs in to nothing but your own cookie, when you give one:

  • Hot and Top searches give about 10 posts per keyword; Latest has no such cap.
  • An account gives its 10 latest posts (and about 20 videos). For more, give your own Weibo cookie (see Weibo cookie (optional)), or search its name or a keyword with a date range.
  • Matching accounts gives the first 20 accounts per keyword.
  • The list of reposts of a post is not available. The followers of an account and the accounts it follows are read with your own cookie only (see Weibo cookie (optional)), up to 5,000 of each per account.
  • Comments, replies and likers: as many as Weibo shows without login, which can be fewer than the counts on the post.

Other limitations:

  • A video link (videoUrl) expires about an hour after the run: download it right away, or keep videoPageUrl.
  • onlyNew remembers post IDs, not their content: a post whose likes changed is not returned again.
  • Two runs sharing the same Memory key at the same time may both return the same new post.

A run that reaches its timeout stops itself about 45 seconds before it: no new page is asked, what it read is saved and, with onlyNew, remembered, and the run ends Succeeded with "Stopped before the run's timeout". Resurrect it to go on from there, or give the next run a longer timeout (Run options).

A run the platform stops without warning (out of memory)

  • Resurrect it: it goes on from where it stood at most a minute before the stop. The posts already saved are skipped: none is delivered or charged twice, and Max results still counts them.
  • With onlyNew, the memory is saved after each write (at most once every 2 seconds): resurrect the stopped run and the posts it had saved meanwhile join the memory; leave it stopped for good, and the next run may return the posts of its last 2 seconds once more.

Something doesn't work?

The last line of the log counts the results saved, filtered out, not found on Weibo (a post or account deleted or hidden), the sources skipped because Weibo shows them only to logged-in users (or because the cookie you gave was refused), and the requests that failed after every retry. Those requests and the posts not found are listed, with the reason, in the FAILED_REQUESTS record of the run's key-value store. A run that saved nothing and had failed requests fails, and its last message gives the cause.

If Weibo changes its answers, you are told instead of paying for blank rows. If the first 20 posts read all lack their publication date, text or author, the run saves nothing more, stops and fails, and its last message names the missing field: at most those first posts are charged. A run of fewer posts (a scheduled onlyNew run that finds a few new ones, a small Max results) is checked at its end, from 5 posts: its posts are already saved, and the run fails with the missing field instead of ending green.

🛟 Support

Open an issue in the Issues tab with a link to your run: the run log and the FAILED_REQUESTS record of the key-value store show exactly what failed and why.