本文最后更新于 605 天前,其中的信息可能已经有所发展或是发生改变。
目的
目的很简单,就是抓取斗鱼的弹幕,并且能够储存下载做分析
尝试1
首先,在知乎上能找到这样一个问题:如何获取斗鱼直播间的弹幕信息?
在回答里能看到很多的仓库,里面基本都指向了两个地址:
openbarrage.douyu.com
和danmu.douyu.com
然而这两个地址在现在(2020/1/7)早就已经没有用了,自然是连接不上的
尝试2
在斗鱼的官方平台 https://open.douyu.com/, 给出了各种接口来获取直播信息,不过遗憾的是,这东西对个人不开放,邮件联系不回,加群也不加,只能放弃。
尝试3
后来我又找到了这个仓库,https://github.com/davidkingzyb/pccold
pip install pccold
后直接运行,成功!既然成功了就要研究一下做了什么
在https://github.com/davidkingzyb/pccold/blob/master/pccold/wsdanmu.py 这个文件里,我们能看到 danmuproxy.douyu.com
这个地址,谷歌搜索这个地址,搜索到一篇文章:深入浅出Websocket(二)分布式Websocket集群,里面提到了一点
根据截图,我们打开斗鱼任意一个直播间,在Network
选项中确实能看到这一项
查看其内容,发现和代码是吻合的,例如请求中的第一项就是登录,和代码里对应的发送内容是一致的
req = {
'type': 'loginreq',
'room_id': room_id,
'dfl': 'sn@A=105@Sss@A=1',
'username': username,
'uid': uid,
'ct': '0',
}
而在发送消息上,可以参考上面的斗鱼开放平台,虽然没啥其他用,不过提供了使用的TCP协议,和文本内容加在一起就能进行登录和接收弹幕了
这样,最终得到了一个弹幕抓取器
弹幕存储和分析
未完成。。