
如题,在 B 站 DD 的时候主播都用弹幕机,把弹幕转成文字放在 obs 里,弹幕机是怎么获取到直播弹幕的呢?
按最基础的爬虫来讲,每一次爬取都是一次独立的请求和返回,似乎并不适合用快速重复请求来实现这种需求,能不能请求到另说,之后还要再做排序,除杂什么的怎么看也不太合适。
按照弹幕机的表现来看最适合的是 ws,也就是如果通过某种方式爬虫能接管浏览器的 ws 的话,每次有弹幕刷新,都会作为一种事件被推送给后端,这样就很舒服。
1 ysc3839 2020 年 10 月 27 日 via Android 你这问的好像不是直播弹幕程序是怎么实现的,而是弹幕系统的接口。 没记错的话,大多数直播网站的弹幕都是用 WebSocket 的。 |
2 woodie1994 2020 年 10 月 27 日 像斗鱼这些好像有提供 api 获取弹幕的 |
3 starzh 2020 年 10 月 27 日 |
4 locoz 2020 年 10 月 27 日 via Android 爬虫并不仅限于“每一次爬取都是一次独立的请求和返回”,实际上爬虫是使用与别人客户端同样的通信协议去进行通信,所以不管是 HTTP 、WS 还是纯粹基于 TCP 、UDP 搞的自定义协议,爬虫都可以进行“爬取”这个操作…本质上来讲爬虫只是个特殊的客户端而已。 然后是弹幕,弹幕一般分两种做法,一种是基于 TCP ( B 站以前是)、一种是基于 WS ( B 站现在是),都是依靠服务端推送的,爬虫(弹幕机)只需要同样模拟发送请求、建立连接,然后正常获取到弹幕并按照特定方式解析就行了(一般会做压缩)。 当然 HTTP 也不是不能获取到弹幕,像 B 站的直播间在打开时是会加载一下最近十几条弹幕的,那个就是走的 HTTP 。 |
5 glaucus 2020 年 10 月 27 日 斗鱼是有开放弹幕接口的,估计 B 站也有吧 |