python 实现 B 站评论分页爬取

一、接口概述
B 站评论数据主要通过接口获取,需传递视频 oid(即 aid 或转换后的 BV 号)、页码(pn)等参数。接口返回 JSON 格式数据,包含主评论及回复内容。弹幕数据则通过接口获取,返回 XML 格式。
二、关键参数说明
1.oid:视频唯一标识,可通过 BV 号转换或直接从 API 获取。
2.type=1:固定参数,表示评论类型为视频评论。
3.pn/ps:页码和每页数量,默认每页 20 条评论。
4.mode=3:最新接口版本标识。
5.前往体验 API:c0b.cc/R4rbK2 。
三、Python 请求示例
以下代码展示如何通过 Python 爬取 B 站评论数据,包含代理设置和分页处理:
python
# coding:utf-8
""" Compatible for python2.x and python3.x requirement: pip install requests """
from __future__ import print_function import requests
# 配置参数 API_URL = "c0b.cc/R4rbK2 wechatid:Taobaoapi2014 "
app_key = "YOUR_APP_KEY" q = "视频 ID" # 视频 ID
# 请求示例 url 默认请求参数已经做 URL 编码 url = "bili/item_review/?key=<您自己的 apiKey>&item_id=921601411"
headers = { "Accept-Encoding": "gzip", "Connection": "close" } if __name__ == "__main__": r = requests.get(url, headers=headers) json_obj = r.json() print(json_obj)
四、注意事项
1.反爬机制:需设置随机 User-Agent 和请求间隔,建议使用代理 IP。
2.认证:部分接口需要 Credential 参数(如 sessdata)。
3.数据存储:可将结果保存至 CSV 或数据库。
完整项目需补充 BV 转 oid 的逻辑,实际开发建议使用官方 bilibili-api 库简化流程。弹幕采集可参考 get_danmakus()方法。
评论