Bilibili,作为一个以ACG(动画、漫画、游戏)文化为基础的二次元视频平台,拥有海量的视频资源供用户观看。许多开发者和数据分析师对Bilibili上的视频信息感兴趣,希望能够自动化地抓取这些数据,以便进行分析或个人项目的使用。最近好多小伙伴私信问怎么用Python爬取B站视频数据(特别是弹幕和评论数据),今天就给大家安排上!不过要提前说明三点:
1. 本文仅供学习交流(划重点)
2. 实际应用请遵守B站robots.txt协议
3. 建议使用代理IP避免被封(后面会教具体方法)
一、接口概述
B站提供了多个公开API接口用于获取视频数据,主要包括:
1.视频基础信息接口:可获取标题、播放量、弹幕数等。
2.热门榜单接口:获取全站热门视频。
3.搜索接口:支持关键词搜索视频。
4.UP主视频列表接口:获取指定UP主的投稿视频。
5.评论获取接口:根据视频id获取评论。
6.前往体验API:c0b.cc/R4rbK2 。
二、注意事项
1.需遵守B站robots.txt协议,建议使用代理IP避免封禁。
2.部分接口需要WBI签名验证(含img_key和sub_key参数)。
3.请求头需包含有效User-Agent,否则可能返回412错误。
4.频率限制通常为100次/分钟,超出会返回-799错误码。
三、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_get_video/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&item_id=视频ID"
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)
代码功能说明:
1.通过B站官方API获取视频基础信息。
2.包含必要的请求头(User-Agent和Referer)。
3.返回结构化数据(标题、UP主、播放量等关键指标)。
4.错误处理机制确保程序健壮性。