BiliBili热门视频弹幕爬虫
最近对b站的弹幕很感兴趣,想爬下来分析点数据,废话不多说首先我们打开某个b站的视频,然后F12
切换到浏览器控制台。选择NetWork->检索弹幕源文件(弹幕资源文件xml格式)

具体弹幕格式内容可参考[1]。
然后获取到它对应的url,很轻松的就可以获取到视频的弹幕了。

但是,视频的url和弹幕的url并没有太大联系,
ctrl+U
查看代码发现cid这一项与弹幕对应。
那么这就很容易做了。但是怎么大规模的爬去弹幕,我从热门推荐中找,因为热门视频中的弹幕数肯定不少,对于弹幕分析有帮助。

现在在通过源代码的方式不太可行了,b站网页是动态加载的,因此要么用浏览器的方法解析当前页面的字段然后进行提取,还有就是找到动态加载所请求的API ,同样
F12
,因为AJAX技术通过XHR请求的,查看一下XHR栏中的资源,截图中标记的那一项传过的参数提取出来是一段json字符串,分析这正是当前所看到热门视频中所有信息。
接下来分析具体的字段,result中的每一项是当前页面中每个视频的具体信息,我们用到的也就是arcurl这一项了。

这只是某一栏中的热门信息,那其他栏中的热门信息又是通过什么控制的呢。查看该资源的url发现
比对不同热门资源的url就会发现。cate_id代表不同的栏目,具体怎么获取到所有b站的cate_id没有继续深入研究下去,自己可以手动的按照上面的方式查看cate_id。
|
|
有了上面的思路,整个思路就清晰了,最终整个流程有如下表示:

具体代码见:https://github.com/Tecmus/BarrageSpider
参考
[1]:B站弹幕格式&历史弹幕获取分析 http://ju.outofmemory.cn/entry/146571