斗鱼tv发弹幕限制发的弹幕怎么看不到了?


选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...

前言前几天(寒假前咯)闲着无聊,看到舍友们都在看斗鱼TV,虽然我对那些网络游戏都不是非常感兴趣,但是我突然间想到,如果我可以获取上面的弹幕内容,不就有点意思了么?1.分析阶段如果我想要抓取网页上面的东西,无非就是两种方法使用浏览器,手工(自己点击)或者非手工(使用JS脚本),存取我想要的东西。编写HTTP客户端(斗鱼无HTTPS通讯)第一种方法是万能的,但显然是不行的, 原因如下:手动保存实在是不可行,程序员不为也。浏览器与本地交互有限,换而言之,也就是即使我抓取了对应的弹幕,我也没有办法解决持久化的问题。假设你选择的是Chrome或者firefox浏览器,也不是不能实现持久化,但这需要写扩展,Chrome扩展没有写过,也不是很感兴趣。第二种方法显然是一个正常的程序员的做法。语言选用Ruby写一个客户端,也就是写一个小爬虫,使用的场景:用户在终端执行命令gem install danmudanmu douyu [room_id/url]#比如danmu douyu qiuridanmu douyu http://www.douyutv.com/13861然后就可以在终端欣赏弹幕咯.回想一下抓取网站的方法四步走:请求网页(原始数据) - 提取数据(提纯数据) - 保存数据 - 分析数据很显然,只要解决了请求网页,其他的也就无非解析和SQL语句什么的。1.1.斗鱼TV弹幕抓取的思路确定如果是像我上面说的那么简单,也就不必再写一篇文章。毕竟,网页小爬虫没有什么技术含量。分布式爬虫才有。通常情况下的网页小爬虫无非要解决如下问题:请求,如果对方有一定策略的反爬虫,那需要反反爬虫。比如,header带上host,带上refer,带上其他需要验证,那就申请用户名和密码,然后登陆如果在登录时期有防跨站机制,那就先获取一次登录页面,然后解析出token,带上对应的token然后登陆。在程序中加入Log,并且存到本地。防止出现各种各样的反爬虫机制ban掉了程序,从而方便进行下一步防反爬虫对策。并且,由于请求响应机制的存在,通常情况下,每一个请求对应一个响应,如果出错了,要么超时,要么有状态码,所以普通的web爬虫也相对而言比较容易些。那么,斗鱼TV的站点是不是这样子的就能够容易爬取呢?你猜到了,答案是“不是”。由于弹幕具有实时性,就决定了斗鱼TV的弹幕无法通过保存完整指定时间端弹幕的XML(比如BILIBILI的一个视频弹幕是存在一段xml中的)或者Json数据来显示弹幕。要不然的话,那主播操作很出色的时候,观众的弹幕岂不是无法实时显示了么?那么,肯定就是WebSocket了,于是,我一如既往的打开F12,查看网络流量。正如你想到的那样,没有任何的弹幕流量来往。一个WebSocket的消息都没有。那么,消息肯定是有的,但是消息并不是通过HTTP协议或者WebSocket协议传输的,那么问题会出在哪呢?分析前端的代码,找出获取弹幕的JS代码,苦于代码太多,找了很久没有找到。那也就是执行逻辑可能在flash里面。于是祭出大杀器WireShark,抓一下流量。终于看到弹幕的样子了。是这样的。原来使用的是Flash的Socket功能。那么,我们只需要模拟Socket的每一条消息就好了.多分析几组数据,但还是对发送消息内容缺乏把握,特别是在用户认证,用户接收弹幕这一块。在搜索引擎上搜索了一阵,发现知乎上有个帖子,读完终于解了我的疑惑。地址为: 如何获取斗鱼直播间的弹幕信息? - Python在此基础上,省略若干消息分析过程。总结后得出斗鱼TV网站的服务器分布。1.2.房间信息和弹幕认证服务器获取首先我们拿随便一个主播房间来说,比如,qiuriTa的房间链接分为两种直播互动赢点卡 暴雪游戏闹新春http://www.douyutv.com/id][房间对这个主播房间页面请求,正常,所有的有用信息都不是放在HTML中渲染出来,而是有一条放在HTML中内置的JS脚本中,这是为了减少服务器渲染HTML的压力?可是渲染放在JS里面不也一样需要渲染?(不明白)总之,就是程序先加载没有具体数据填充页面,然后JS更新数据。内置的两段JS脚本,JS脚本中有两个变量,该变量很容易转换成JSON数据,也就是两段JSON数据,一个是关于主播的个人信息,另一个是关于弹幕认证服务器的列表(该列表中的任意一个服务器均可以认证,但每一次请求主播页面得到的认证服务器列表都不一样)通过这步,我们就拿到了主播的信息以及弹幕服务器的认证地址,端口。1.3.发送Socket消息的流程简介我们通过抓包,分析那一大坨数据包,可以确定以下通过以下的流程便可以获取弹幕消息。(分析过程比较繁琐)首先建立两个Socket。一个用于认证(@danmu_auth_socket),另一个用户获取弹幕(@danmu_client)。步骤1: @danmu_auth_socket 发送消息登陆,获取消息1解析出匿名用户的用户名,再获取消息2解析出gid步骤2: @danmu_auth_socket 发送qrl消息,获取两个没有什么用的消息步骤3: @danmu_auth_socket 发送keeplive消息步骤4: @danmu_socket 发送伪登陆消息(所有匿名用户都一样只需要输入步骤一中用户名就行了,因为认证已经在上面做过了)步骤5: @danmu_socket 发送join_group消息需要步骤一中国的gid步骤6: @danmu_socket 不断的recv消息就可以获取弹幕消息了后面会详细解释2.1.消息Socket消息格式以及发送一条消息既然是发消息,那么每条消息总是有些格式的。斗鱼的消息格式大致如下:每一条消息并遵循下面的格式:1.通信协议长度,后四个部分的长度,四个字节2.第二部分与第一部分一样3.请求代码,发送给斗鱼的话,内容为0xb1,0x02, 斗鱼返回的代码为0xb2,0x024.发送内容5.末尾字节
打开斗鱼直播伴侣 在斗鱼直播全屏游戏时,利用其他任何第三方的直播软件或弹幕软件在全屏游戏中都不会看到弹幕,那么利用斗鱼直播伴侣如何在全屏游戏中看到斗鱼弹幕呢?1.打开斗鱼直播伴侣,选择添加游戏源功能。2.选择当前运行的游戏,以英雄联盟为例。(1)可以在伴侣的快捷图标中选择运行的游戏。(2)可以在下拉列表框中选择运行的游戏,在英雄联盟中选择League of Legends.exe然后点击打开按钮,完成添加游戏源。3.打开弹幕助手。探究的一般过程是从发现问题、提出问题开始的,发现问题后,根据自己已有的知识和生活经验对问题的答案作出假设.设计探究的方案,包括选择材料、设计方法步骤等.按照探究方案进行探究,得到结果,再分析所得的结果与假设是否相符,从而得出结论.并不是所有的问题都一次探究得到正确的结论.有时,由于探究的方法不够完善,也可能得出错误的结论.因此,在得出结论后,还需要对整个探究过程进行反思.探究实验的一般方法步骤:提出问题、做出假设、制定计划、实施计划、得出结论、表达和交流.科学探究常用的方法有观察法、实验法、调查法和资料分析法等.观察是科学探究的一种基本方法.科学观察可以直接用肉眼,也可以借助放大镜、显微镜等仪器,或利用照相机、录像机、摄像机等工具,有时还需要测量.科学的观察要有明确的目的;观察时要全面、细致、实事求是,并及时记录下来;要有计划、要耐心;要积极思考,及时记录;要交流看法、进行讨论.实验方案的设计要紧紧围绕提出的问题和假设来进行.在研究一种条件对研究对象的影响时,所进行的除了这种条件不同外,其它条件都相同的实验,叫做对照实验.一般步骤:发现并提出问题;收集与问题相关的信息;作出假设;设计实验方案;实施实验并记录;分析实验现象;得出结论.调查是科学探究的常用方法之一.调查时首先要明确调查目的和调查对象,制订合理的调查方案.调查过程中有时因为调查的范围很大,就要选取一部分调查对象作为样本.调查过程中要如实记录.对调查的结果要进行整理和分析,有时要用数学方法进行统计.收集和分析资料也是科学探究的常用方法之一.收集资料的途径有多种.去图书管查阅书刊报纸,拜访有关人士,上网收索.其中资料的形式包括文字、图片、数据以及音像资料等.对获得的资料要进行整理和分析,从中寻找答案和探究线索.
  对于习惯看直播的人来说,弹幕是直播必不可少的成分,是观众与主播交流最重要的桥梁。最近有用户发现,斗鱼暂停关闭了弹幕功能,在弹幕中全部只有表情没有文字,这是什么回事呢?  小编从官方了解到,斗鱼暂停关闭了弹幕功能,直到6月6日之前弹幕系统都将处在维护状态。  斗鱼弹幕只是技术升级维护几日,很快重新开放的,所以虽然没有弹幕的这几天看直播看视频显得枯燥,但大家耐心等待几天就有了。标签:
斗鱼直播
斗鱼
斗鱼TV
斗鱼弹幕相关文章推荐最新文章推荐

我要回帖

更多关于 斗鱼tv发弹幕限制 的文章

 

随机推荐