导语
利用Python采集PandaTV弹幕数据。。。
初衷还是为了以后如果需要中文语料数据集可以从各大直播平台的直播间抓取。。。
当然。。。
等攒够一定数量的直播平台,大概就可以写一个美其名曰“中国各大直播平台弹幕采集器”的工具了。
毕竟梦想总是要有的,因为一定会实现。。。
题外话
各大直播平台的弹幕采集其实已经有现成的轮子了。
GitHub地址为:
https://github.com/littlecodersh/danmu
但是貌似年久失修的样子:
2017年5月之后原作者就没有再对这个库进行维护。
PandaTV的弹幕采集已经完全无法使用,于是就有了今天这篇文章。。。
主要思路
对PandaTV直播间抓包分析得出的结论有:
(1)通过GET请求获取弹幕服务器地址;
(2)和弹幕服务器建立WebSocket连接后的具体过程需要在主页面引用的JS文件中找(建立连接、发心跳包、解压弹幕消息);
(3)WebSocket中传输的json对象为明文形式。
PS:
具体思路感兴趣者可详见源代码。。。
源代码中的思路截止2018-02-04为正确思路。。。
因为根据一些网络资源可以推断出PandaTV近一年来不断更新客户端和服务器的交互方式。。。
这也是为什么我的主要思路较为笼统的原因。。。
不感兴趣者可以直接使用。。。
开发工具
Python版本:3.5.4
相关模块:
requests模块以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
使用方式
(1)直接运行
功能:
根据输入的房间号,显示该房间实时弹幕。
若需其他功能请自行修改源代码。
CTRL+C键可停止程序运行。
首页随便找个房间演示下,如下图所示:
(2)作为模块导入
使用方式如下图所示:
说明与简单实例
返回的弹幕数据格式为:
不是特别了解直播平台里这些东西是什么意思,了解了貌似也没什么用,因此对其他数据有兴趣的请自行了解获取其含义。
写了个将用户昵称及其发言内容存入excel中的脚本作为简单实例。
运行方式如下图所示:
结果保存在results文件夹中,默认以房间号命名:
更多
公众号提供的所有爬虫相关的源代码~~~
无特殊说明,本人均不予维护~~~
而且即使维护了本人也会发新的推文进行说明~~~
若相关网站更新较为频繁,源代码大概只能是仅供参考了~~~
毕竟。。。PandaTV貌似更新很快的样子。。。
领取专属 10元无门槛券
私享最新 技术干货