Integration Yard · Apify tools

How to Scrape Weibo and Bilibili Data in 2026 (No Login Required)

Published October 19, 2026 · Integration Yard

Weibo and Bilibili are two of the biggest public data sources on the Chinese internet — a microblog with a live hot-search board, and the largest video community with comments and danmaku (弹幕) overlay text. Both expose a lot of that data without requiring a login, which means you can build search, monitoring and research tooling on top of them without ever handling an account cookie. Here's how, grounded in what these actors actually return.

Scraping Bilibili (哔哩哔哩)

Bilibili Scraper covers five modes, all without login, cookie or API key:

ModeWhat you getInput
searchVideos matching keywords, with sort/length/date filterssearchQueries
video_detailViews, likes, coins, favorites, shares, danmaku count, comment count, parts, hasSubtitles videoUrls (links or BV ids)
video_commentsTop-level comments (popular or newest first) plus optional repliesvideoUrls
popularThe popular / trending board—
user_profileCreator followers, following, video count, total likes, level, verification, biouserIds

Pricing is $0.001 per run plus $0.002 per row (video, comment, reply or creator), and $0.01 per danmaku summary when includeDanmaku is on. A 50-video search with comments or a 50-video danmaku pass each run to roughly a dollar; error rows are always free.

{
  "mode": "search",
  "searchQueries": ["机械键盘"],
  "maxResults": 50,
  "sortOrder": "pubdate",
  "includeComments": true,
  "maxComments": 20
}

Two things to know before you plan a Bilibili project: subtitle and AI-subtitle text is only served to logged-in users, so the actor reports whether tracks exist (hasSubtitles) rather than downloading the text; and a creator's upload list (their space page) is blocked by Bilibili's risk control without login — to find a creator's videos, use search with their name instead. Search itself is capped at roughly 1,000 results per keyword, so split broad topics into several keywords or date windows.

Scraping Weibo (微博)

Weibo Scraper covers six modes, also without login or cookie:

ModeWhat you getInput
searchPosts from the 综合/实时/热门 tabs, merged and deduplicatedsearchQueries
hot_searchThe live hot search board: rank, keyword, heat, label—
post_detailFull text, counts, images, hashtags and authorpostUrls
post_commentsComments, paged with Weibo's own cursorpostUrls
user_profileFollowers, following, post count, verification, biouserIds
user_postsA user's latest posts userIds

Pricing is $0.001 per run plus $0.003 per row. The honest limit: without a logged-in account, Weibo only serves the first result page — about 10 posts per search tab (up to roughly 30 unique posts per keyword per run) and about 10 latest posts per user. Comments, post details, profiles and the hot search board aren't limited this way. Schedule the actor hourly to build a continuous feed of new posts for a keyword instead of trying to get everything in one run:

{ "mode": "search", "searchQueries": ["小米", "比亚迪"],
  "includeComments": true, "maxComments": 20 }
{ "mode": "hot_search", "maxResults": 50 }

Public data only

Neither actor logs in, ever. Comment and post rows carry only the author's public nickname and numeric id — no avatars, no location/IP-region tags, and no private fields. This isn't a detail to work around; it's the ceiling of what's available without authenticating as a user, and both actors are built to stay under it.

Running both from code

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

bili_run = client.actor("dheerajitbhu/bilibili-scraper").call(run_input={
    "mode": "search", "searchQueries": ["原神"], "maxResults": 30,
})
for row in client.dataset(bili_run["defaultDatasetId"]).iterate_items():
    print(row.get("type"), row.get("title") or row.get("text"))

weibo_run = client.actor("dheerajitbhu/weibo-scraper").call(run_input={
    "mode": "hot_search", "maxResults": 20,
})
for row in client.dataset(weibo_run["defaultDatasetId"]).iterate_items():
    print(row.get("rank"), row.get("keyword"), row.get("heat"))

Both actors run a daily self-test against the live sites, so if Bilibili or Weibo ever blocks every request in a run, the run is marked failed instead of quietly ending green with zero rows — which means your schedule's failure alert actually fires when something breaks.

Getting cheaper LLM input from either actor

If you're piping the output into an LLM rather than a spreadsheet, both actors support "outputFormat": "compact", a lossless columnar JSON encoding that cuts token count by roughly a quarter to two-fifths depending on row shape — see our compact output benchmark for the measured numbers on real Bilibili and Weibo exports.

Wrap-up

Both Bilibili and Weibo publish a surprising amount of structured data without needing you to log in — search, comments, trending boards and public profiles are all reachable. The practical limits are Weibo's first-page-only search (solved with a schedule) and Bilibili's login-gated subtitles and creator upload lists (solved by searching instead of browsing a profile). Try Bilibili Scraper and Weibo Scraper on Apify.