>
,

B站数据采集实战:用 Apify 抓取 Bilibili 视频搜索与评论区(附代码)

Reading Time: 2 minutes

B 站(Bilibili,哔哩哔哩)已经从二次元社区长成了中文互联网最重要的视频内容池之一:测评、教程、游戏、知识区、品牌种草,几乎什么都有。对做内容研究、品牌监测、AI 语料、舆情分析的团队来说,B 站的视频元数据和评论区是一座金矿。但它的搜索接口和评论接口都带签名校验(WBI 签名),自己写爬虫光是搞定签名就够喝一壶,更别说还要处理分页、限流和反爬。

这篇文章介绍两个开箱即用的 Apify 采集器:Bilibili Video Search(视频搜索)Bilibili Video Comments(评论采集)。一个按关键词批量拉视频元数据,一个按视频抓评论区,都返回结构化 JSON,云端运行、自动处理签名与分页。下面给出字段说明、可直接复制的代码、计费明细和常见问题。

1. 痛点:B 站数据值得抓,但不好抓

  • WBI 签名校验。 B 站的搜索和评论接口都要求动态计算 w_rid 签名参数,签名算法会变,自己维护成本高。
  • 分页与限流。 评论区层级深、分页多,拉多了容易被限流。
  • 字段零散。 播放、点赞、弹幕、收藏、投币散落在不同字段,还要自己清洗对齐。
  • 规模化难。 想批量监测上百个关键词或视频,手写脚本很快就维护不动。

2. 两个采集器:搜索 + 评论

Bilibili Video Search —— 按关键词抓视频元数据。 输入一个关键词,返回该关键词下的视频列表(BV 号、标题、UP 主、播放/点赞/弹幕/收藏数、时长、发布日期、封面等)。可选加购两项增值处理:对标题与简介做情感打分、从简介中提取创作者社媒账号。

核心参数:keyword(必填)、max_results(默认 30)、addonSentimentScored(情感分析,按条加价)、addonSocialHandlesExtracted(社媒账号提取,按条加价)。

Bilibili Video Comments —— 按视频抓评论区。 传入一个或多个视频(BV 号或链接),返回评论文本、作者、等级、点赞、回复数、时间戳等。通过当前的 WBI 签名评论接口抓取,可设置每个视频最多抓多少条,并可选对用户匿名化处理。

核心参数:videos(BV 号或 URL 列表)、max_comments_per_video(默认 100)、anonymize_users(匿名化,默认关闭)、proxyConfiguration(默认住宅代理)。

3. 适合谁用

  • 内容 / 选题研究: 按关键词找出某品类下播放与互动最高的视频,反推选题方向。
  • 品牌 / 市场监测: 追踪品牌或产品相关视频的传播与评论区口碑。
  • AI 语料团队: 采集中文视频元数据与真实评论文本,构建中文语料库。
  • 舆情 / 社媒分析: 把评论区文本接入情感分析与话题聚类管道。

4. 输出字段示例

视频搜索(Video Search)每条视频返回:

字段含义
bvid / aid / urlBV 号 / AV 号 / 视频链接
title / description标题 / 简介
author / midUP 主昵称 / UP 主 ID
play_count / likes / danmaku_count / favorites播放 / 点赞 / 弹幕 / 收藏数
duration / pub_date时长 / 发布日期
tag / thumbnail标签 / 封面图
keyword / scraped_at来源关键词 / 抓取时间

评论采集(Video Comments)每条评论返回:

字段含义
bvid / aid / rpid视频 BV 号 / AV 号 / 评论 ID
text评论内容
author / user_mid / user_level评论者昵称 / ID / 等级
likes / reply_count / is_top点赞数 / 回复数 / 是否置顶
timestamp / ctime / scraped_at发布时间 / 原始时间戳 / 抓取时间

评论记录的 JSON 大致长这样:

{
  "bvid": "BV1xx411c7mu",
  "rpid": 123456789,
  "text": "讲得很清楚,已三连",
  "author": "某用户",
  "user_level": 5,
  "likes": 328,
  "reply_count": 12,
  "is_top": false,
  "timestamp": "2026-06-10T09:30:00Z",
  "scraped_at": "2026-06-13T00:00:00Z"
}

5. 典型使用场景

  • 爆款选题反推: 用搜索按 play_count / likes 排序,找出某关键词下表现最好的视频与 UP 主。
  • 评论区舆情: 抓取目标视频评论,结合情感分析看观众真实反馈。
  • 品牌投放复盘: 监测品牌合作视频的播放、互动与评论口碑,量化投放效果。
  • 中文语料构建: 批量采集视频元数据 + 评论文本,作为中文 NLP 训练素材。

6. 在 Apify 上运行

采集器地址:Bilibili Video Search · Bilibili Video Comments。注册即送 $5 免费额度通过此链接注册)。

关键词搜索 + 抓取该视频评论:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
# 1) 按关键词搜索视频
search = client.actor("nexgendata/bilibili-video-search").call(run_input={
    "keyword": "机器学习",
    "max_results": 30,
})
videos = list(client.dataset(search["defaultDatasetId"]).iterate_items())
top = sorted(videos, key=lambda v: v.get("play_count", 0), reverse=True)[0]
print("最高播放:", top["title"], top["play_count"], top["bvid"])
# 2) 抓取这个视频的评论
comments = client.actor("nexgendata/bilibili-video-comments").call(run_input={
    "videos": [top["bvid"]],
    "max_comments_per_video": 200,
})
for c in client.dataset(comments["defaultDatasetId"]).iterate_items():
    print(c["likes"], c["text"])

计费透明:到底多少钱

两个采集器都用按事件计费(Pay-Per-Event),没有月费:

  • 视频搜索: 启动 $0.005 + 每条视频 $0.02;可选加购:情感分析 +$0.02/条、社媒账号提取 +$0.10/条。
  • 评论采集: 启动 $0.005 + 每条评论 $0.015。

例:搜 30 个视频约 $0.6;抓 200 条评论约 $3。注册赠送的 $5 免费额度足够先把两个工具都跑通。

关于签名与代理

评论接口走当前的 WBI 签名评论 API,采集器自动计算签名参数;评论采集默认通过 Apify 的住宅代理出口,整套流程跑在 Apify 云端,无需你自己维护签名或代理。

7. 相关 Actor:搭建完整的中国社媒数据栈

把 B 站和其它中国社媒、电商、财经数据源组合起来,输出统一的结构化 JSON:

8. 常见问题

需要登录 B 站账号吗?

不需要。搜索与评论采集都基于公开接口,无需账号或 Cookie。

数据是实时的吗?

是。采集器在运行那一刻实时拉取,播放、点赞、评论数都是当时的最新值。

WBI 签名要自己处理吗?

不用。评论采集器内置当前的 WBI 签名计算,签名参数由采集器自动生成。

一次能抓多少?

搜索可设 max_results;评论可对每个视频设 max_comments_per_video(默认 100),并支持一次传入多个视频。

能保护评论者隐私吗?

可以。评论采集提供 anonymize_users 选项,对用户信息做匿名化处理;采集内容仅限公开评论数据。

输出能直接导入 pandas 或 Excel 吗?

可以。结果存为 Apify 数据集,支持一键导出 CSV / Excel / JSON,或通过数据集 API 直接读入 pandas。

现在就试: 运行 Bilibili Video Search · 运行 Bilibili Video Comments · 注册领取 $5 免费额度

Run it yourself in minutes

New users get $5 free credit (no card). Browse the full 300+ actor catalog and run any tool on pay-per-use pricing.

More from the blog