乐易论坛-乐易网易语言培训教程火山PC视窗中文编程交流论坛

 找回密码
 立即注册

手机号登录

用手机号号登陆

微信登录

微信扫码,快速开始

QQ登录

用QQ账号登陆

办理VIP,定制软件,报名培训联系QQ请牢记揰掵佲的QQ号1615457736 1615457734 其他都是骗子易语言0基础入门课程
易语言汇编快速入门课程《64位某信Hook技术实战基础教程》【投稿课程】百日Js加密分析实战课程(无密下载)
【强烈推荐】《火山视窗0基础入门系列课程》《64位某信Hook技术实战进阶教程》【投稿课程】《0基础x64位游戏内存辅助开发教程 》
《火山视窗POST基础入门课程》《64位某信数据库操作课程》【投稿课程】广告位招租联系QQ1615457736
查看: 18818|回复: 12

[网络教程] [图文]易语言连接斗鱼弹幕服务器.抓取弹幕

[复制链接]

[网络教程] [图文]易语言连接斗鱼弹幕服务器.抓取弹幕

[复制链接]
章鱼C
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
250
注册时间
2016-10-18
最后登录
1970-1-1

勋章墙

2016-10-22 00:44:27 | 显示全部楼层 |阅读模式

据统计90%查看本帖的人,都已经注册本站了哦

您需要 登录 才可以下载或查看,没有账号?立即注册

×
实在不会录视频我一录视频.就不怎么会说话了.
所以咱还是图文吧


斗鱼已经开放了第三方协议
终于不用去自己抓包 分析
虽然前人已经分析完毕了...
不过.要移植起来.还是很麻烦的
我先用的C++写了一次
然后用python写了一次
这次.用易语言试了一次...感觉比C++简单.但不如python方便吧 不过两者其实差不多
关于斗鱼第三方协yi的下载地址:http://dev-bbs.douyutv.com/forum.php


首先.你得知道什么是TCP协议
如果不会.自行百度补课吧
我的教程从来都不是给初学者看的
都是给进阶看的
关于易语言SOCKET编程的教程.真的太少

评分

参与人数 3易币 +25 金钱 +59 收起 理由
不依Baya + 4 乐易编程网论坛祝各位216年天天开心!
卖萌大叔 + 5 + 5 乐易编程网论坛祝各位216年天天开心!
揰掵佲 + 20 + 50 乐易第一期线上培训开始了 http://www.leyb.

查看全部评分

回复

使用道具 举报

楼主
章鱼C 楼主
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
250
注册时间
2016-10-18
最后登录
1970-1-1

勋章墙

2016-10-22 00:58:39 | 显示全部楼层
后面就只管取回就行了
完整代码如下
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
信息长度整数型  
消息类型短整数型  
保留字段1字节型  
保留字段2字节型  
内容文本型  
发送数据字节集  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
调试输出 (客户1.连接 (“123.150.206.162”, 8601))
消息类型 = 689
保留字段1 = 0
保留字段2 = 0
内容 = “type@=loginreq/roomid@=584854/”
信息长度 = 取文本长度 (内容) + 4 + 2 + 1 + 1 + 1
发送数据 = 到字节集 (信息长度)到字节集 (信息长度)到字节集 (消息类型)到字节集 (保留字段1)到字节集 (保留字段2)到字节集 (内容){ 0 }
客户1.发送数据 (发送数据)
消息类型 = 689
保留字段1 = 0
保留字段2 = 0
内容 = “type@=joingroup/rid@=584854/gid@=-9999/”
信息长度 = 取文本长度 (内容) + 4 + 2 + 1 + 1 + 1
发送数据 = 到字节集 (信息长度)到字节集 (信息长度)到字节集 (消息类型)到字节集 (保留字段1)到字节集 (保留字段2)到字节集 (内容){ 0 }
客户1.发送数据 (发送数据)
子程序名返回值类型公开备 注
_客户1_数据到达  
变量名类 型静态数组备 注
a字节集  
b文本型  
a = 客户1.取回数据 ()
b = CG编码转换 (到文本 (取字节集中间 (a, 13, 取字节集长度 (a) - 13)), #编码_GBK, #编码_UTF_8 )
调试输出 (b)


i支持库列表   支持库注释   
spec特殊功能支持库
iconv编码转换支持库


OK 教程到此结束
有问题 直接回复我即可
回复

使用道具 举报

楼主
章鱼C 楼主
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
250
注册时间
2016-10-18
最后登录
1970-1-1

勋章墙

2016-10-22 00:54:00 | 显示全部楼层
那也就说.翻译过来
消息长度---整数型
消息类型---短整数型
加密字段---字节型
保留字段---字节型
内容---文本型即可
那接下来就好说了
动手写即可
易语言写TCP socket相当简单
因为易语言提供了一个客户端的组件
只需要这个组件
什么模块 其他支持库 都通通靠边站吧
然后我们连接斗鱼弹幕服务器
QQ截图20161021235854.png
然后发送协议中的数据
QQ截图20161021235854.png
  
调试输出 (客户1.连接 (“123.150.206.162”, 8601))
消息类型 = 689
保留字段1 = 0
保留字段2 = 0
内容 = “type@=loginreq/roomid@=584854/”
信息长度 = 取文本长度 (内容) + 4 + 2 + 1 + 1 + 1
发送数据 = 到字节集 (信息长度)到字节集 (信息长度)到字节集 (消息类型)到字节集 (保留字段1)到字节集 (保留字段2)到字节集 (内容){ 0 }
客户1.发送数据 (发送数据)


i支持库列表   支持库注释   
spec特殊功能支持库

前3个字段就不解释了
至于内容.用字节集 或者文本型 都可以的 这个随意
然后是消息长度
也就是取内容的长度+4(长度本身)+2(消息类型)+1+1(2个保留的字段)
这个就是消息的长度了
然后就是到字节集拼接字符串
但是消息长度中.我加了3次1
然后在最后+了一个{0}
是因为这个
QQ截图20161021235854.png
用C++写的时候.char型数组 结尾是'\0'
但是易语言不是.也可能是.但是谁知道呢?至少到字节集后 一定不是
所以只能自己手动+1 然后加{0}
最后.就是发送数据了
回复

使用道具 举报

楼主
章鱼C 楼主
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
250
注册时间
2016-10-18
最后登录
1970-1-1

勋章墙

2016-10-22 00:57:24 | 显示全部楼层
QQ截图20161021235854.png QQ截图20161022000203.png

是需要发送的内容.首先发一个登陆请求过去 roomid就是房间号
返回结果如下
* 真
* “type@=loginres/userid@=0/roomgroup@=0/pg@=0/sessionid@=0/username@=/nickname@=/live_stat@=0/is_illegal@=0/ill_ct@=/ill_ts@=0/now@=0/ps@=0/es@=0/it@=0/its@=0/npv@=0/best_dlev@=0/cur_lev@=0/nrc@=3471427501/sid@=70103/”
被调试易程序运行完毕
在第三方协议中.已经申明了返回数据内容
实际上 我们接受的数据 是这样的
{224,0,0,0,224,0,0,0,178,2,0,0,116,121,112,101,64,61,108,111,103,105,110,114,101,115,47,117,115,101,114,105,100,64,61,48,47,114,111,111,109,103,114,111,117,112,64,61,48,47,112,103,64,61,48,47,115,101,115,115,105,111,110,105,100,64,61,48,47,117,115,101,114,110,97,109,101,64,61,47,110,105,99,107,110,97,109,101,64,61,47,108,105,118,101,95,115,116,97,116,64,61,48,47,105,115,95,105,108,108,101,103,97,108,64,61,48,47,105,108,108,95,99,116,64,61,47,105,108,108,95,116,115,64,61,48,47,110,111,119,64,61,48,47,112,115,64,61,48,47,101,115,64,61,48,47,105,116,64,61,48,47,105,116,115,64,61,48,47,110,112,118,64,61,48,47,98,101,115,116,95,100,108,101,118,64,61,48,47,99,117,114,95,108,101,118,64,61,48,47,110,114,99,64,61,51,52,55,49,52,50,55,53,48,49,47,115,105,100,64,61,55,48,49,48,51,47,0}
我们先来分析下发送返回的数据
224,0,0,0 对应长度 出现2次 4个字节
178,2 发送的数据 是177,2 正好符合斗鱼协yi的消息类型
0,0 刚好符合2个保留字段 各占一个字节
剩下的就是内容了
回复

使用道具 举报

楼主
章鱼C 楼主
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
250
注册时间
2016-10-18
最后登录
1970-1-1

勋章墙

2016-10-22 00:47:57 | 显示全部楼层
我之前在CSDN写过一篇关于C++.python如何抓取斗鱼弹幕的教程
这次换成易语言了
先看看斗鱼第三方协议的内容吧 QQ截图20161022000203.png
1个字节为8位 一个字为2个字节 自行百度汇编语言
长度.4个字节 对应Int(出现2次)
消息类型.2个字节.对应short
加密字段.1个字节.对应char
保留字段.1个字节.对应char
然后就是数据内容部分了
我从CSDN找到一张图 关于易语言数据类型尺寸
QQ截图20161021235854.png


回复

使用道具 举报

已绑定手机
已实名认证
卖萌大叔
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
996
注册时间
2014-11-19
最后登录
1970-1-1

勋章墙

2016-10-22 04:16:46 | 显示全部楼层
感谢感谢,谢谢楼主分享
回复

使用道具 举报

已绑定手机
旧人梦
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
564
注册时间
2016-1-12
最后登录
1970-1-1

勋章墙

2016-10-22 09:27:28 | 显示全部楼层
感谢感谢,谢谢楼主分享
回复

使用道具 举报

已绑定手机
不依Baya
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
300
注册时间
2015-2-1
最后登录
1970-1-1

勋章墙

2016-10-22 09:30:16 | 显示全部楼层
感谢分享!!
回复

使用道具 举报

已绑定手机
花好月圆夜
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
514
注册时间
2015-12-10
最后登录
1970-1-1

勋章墙

2016-10-22 14:28:45 | 显示全部楼层
太棒了,感谢楼主,Mrak一下
回复

使用道具 举报

已绑定手机
冷寒冰
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
246
注册时间
2015-10-6
最后登录
1970-1-1

勋章墙

2016-10-22 18:27:46 | 显示全部楼层
感谢感谢,谢谢楼主分享
回复

使用道具 举报

如果懒得打字,请选择右侧内容快捷回复 提醒:以任何方式进行『恶意灌水』的行为,进行封号处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

热点推荐上一条 /5 下一条

QQ|网站地图|手机版|小黑屋|乐易论坛-乐易网 | 湘ICP备19007035号

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表乐易立场!

娄底市乐易网络科技有限公司声明:乐易原创培训课程版权均为我公司所有,未经许可,不得擅自翻录,盗版,破解本站课课程,我们将保留法律诉讼的权利

GMT+8, 2025-7-7 03:16 , Processed in 0.096477 second(s), 63 queries .

Powered by Discuz! X3.4

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表