这是关于超级卵杰(74751)直播间的python自动化脚本。超级卵杰只会玩卵子图,导致压分压哪输哪。所以做了个自动化脚本替我压分。基本上卵杰直播间的功能都能实现。接受弹幕是根据别人模板改的。

主要是由两部分实现,第一socket 模块来接收弹幕,第二用selenium控制浏览器发送弹幕。

先第一部分:

先从网上找斗鱼的弹幕协议。斗鱼弹幕服务器第三方接入协议v1.6.2

网上这类的学习资料很多,大家自己看看就行,我这就不再讲了。

导入socket模块,连接斗鱼服务器。

import socket
import struct
import time
import re
sk_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#tcp 连接
host = socket.gethostbyname("openbarrage.douyutv.com")
#斗鱼服务器地址
port = 8601
#端口号
sk_client.connect((host, port))
#创建连接def send_msg(msg): #根据弹幕协议,对斗鱼服务器发送信息格式处理。content = msg.encode()length = len(content) + 8code = 689head = struct.pack('i', length) + struct.pack('i', length) + struct.pack('i', code)try:sk_client.sendall(head + content)except:time.sleep(2)def init(): #登录信息msg_login = 'type@=loginreq/roomid@=74751/\x00'
#若连接其他直播间在roomid@=()/内添加直播间号send_msg(msg_login)time.sleep(1)msg_join = 'type@=joingroup/rid@=74751/gid@=-9999/\x00'
#同上send_msg(msg_join)def get_dm():  #获取弹幕pattern = re.compile(b'type@=chatmsg/.+?/nn@=(.+?)/txt@=(.+?)/.+?/level@=(.+?)/')#通过re将有用信息提取出来。while 1:buffer = b''while 1:recv_data = sk_client.recv(4096)buffer += recv_dataif recv_data.endswith(b'\x00'):breakfor nn, txt, level in pattern.findall(buffer):try:print("[lv.{:0<2}][{}]: {}".format(level.decode(), nn.decode(), txt.decode().strip()))except UnicodeDecodeError as e:print(e)def keep_live(): #心跳包,保持连接斗鱼弹幕服务器while True:time.sleep(15)msg_keep = 'type@=mrkl/\x00'send_msg(msg_keep)

连接斗鱼弹幕服务器通过以上模块就行了。

因为后续还有许多功能要添加。所以使用多线程Thread。

import socket
import struct
import re
from threading import Thread
import time
sk_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#tcp 连接
host = socket.gethostbyname("openbarrage.douyutv.com")
#斗鱼服务器地址
port = 8601
#端口号
sk_client.connect((host, port))
#创建连接def send_msg(msg): #根据弹幕协议,对斗鱼服务器发送信息格式处理。content = msg.encode()length = len(content) + 8code = 689head = struct.pack('i', length) + struct.pack('i', length) + struct.pack('i', code)try:sk_client.sendall(head + content)except:time.sleep(2)def init(): #登录信息msg_login = 'type@=loginreq/roomid@=74751/\x00'
#若连接其他直播间在roomid@=()/内添加直播间号send_msg(msg_login)time.sleep(1)msg_join = 'type@=joingroup/rid@=74751/gid@=-9999/\x00'
#同上send_msg(msg_join)def keep_live(): #心跳包,保持连接斗鱼弹幕服务器while True:time.sleep(15)msg_keep = 'type@=mrkl/\x00'send_msg(msg_keep)def get_dm():  #获取弹幕pattern = re.compile(b'type@=chatmsg/.+?/nn@=(.+?)/txt@=(.+?)/.+?/level@=(.+?)/')#re提取数据格式while 1:buffer = b''while 1:recv_data = sk_client.recv(4096) #获取数据,定义数据大小buffer += recv_data #将数据传入bufferif recv_data.endswith(b'\x00'):breakfor nn, txt, level in pattern.findall(buffer):从数据中通过re取出try:print("[lv.{:0<2}][{}]: {}".format(level.decode(), nn.decode(), txt.decode().strip()))
#输出得到内容except UnicodeDecodeError as e:print(e)
def main():init()#向斗鱼弹幕服务器发送连接请求t1 = Thread(target=get_dm)#获取弹幕t2 = Thread(target=keep_live)#保持心跳在线t1.start()#开启线程t2.start()
if __name__ == '__main__':main()

到这就可以获取弹幕了。其中需要用到socket连接弹幕服务器获取弹幕。re对信息进行提取。Thread多线程使多模块能同时运行。(Thread运行简单,停止难。后续会解决此问题。)代码复制粘贴就能用。

超级卵杰的自动脚本(1)连接斗鱼弹幕服务器。相关推荐

  1. 超级卵杰的自动脚本(3)签到 抢分 入团 压分功能。

    基础已经好了.剩下功能都很简单.数据分析下就行了. 先是签到模块. 判断分钟如果是00 or 30就打出签到两字就行.为防止重复弹幕,所以在签到后加上当前时间. def sign():while 1: ...

  2. linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  3. 云服务器运行UI交互型挂机脚本,断开连接后失效问题

    大二的时候老师学校要求英语外教社的学习时长不得低于多少,但是很明显都没人去学习,于是就写了个自动挂机的程序.就是每隔一段时间点击下一页面,在自己的电脑上完美运行.但是在云服务器上会出现,远程桌面连接期 ...

  4. JAVA、Python、selenium、问卷星自动脚本

    项目地址 https://gitee.com/Hardy1/questionnaire-star-script 前期准备 配置jdk 安装python 下载安装mitmproxy 代码实现 项目中se ...

  5. securefx 堡垒机_在有跳板机的情况下,SecureCRT自动连接到目标服务器

    为了服务器的安全,运维人员经常会要求我们先登录到跳板机,然后再SSH连接到目标服务器.但是这样是很繁琐的,每次在SecureCRT创建一个连接,都需要输入SSH命令,然后输入密码. 下面的方法可以实现 ...

  6. mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案

    mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案 参考文章: (1)mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案 (2)https://www.cnbl ...

  7. 京东自动评论脚本_安卓自动脚本,京东活动,抖音极速版刷视频

    安装AutoJS 下载地址,下载好安装 https://lanzous.com/id051uj 运行软件按如下图所示进行授权 复制脚本,然后运行就可以解放双手了. 在下图位置进行新建文件,填上名称将下 ...

  8. Windows10熄屏自动断开WiFi连接解决方法

    遇到了好多次这样的情况,电脑只要是熄屏了,过不大会无线网络就会断开连接,那么有没有方法不让电脑熄屏或休眠时断网呢? 当然是有,出现这种问题的原因是Win10为了省电,所以在无人使用电脑时会自动断开网络 ...

  9. 解剖 Nginx ·自动脚本篇(1)解析配置选项脚本 auto/options

    Author: Poechant Blog: blog.CSDN.net/Poechant Email: zhongchao.ustc#gmail.com (#->@) Date: March ...

最新文章

  1. centos7双网卡绑定bond0
  2. Zuul Gateway 网关
  3. 常用公差配合表图_涨知识!常用的机械测量工具,你都知道吗?
  4. (蓝桥杯)2018JAVA B组 日志分析
  5. rdd分片 spark_分布式数据集SparkRDD的依赖与缓存
  6. spring的前后台数据传输。
  7. rabbitmq direct 多个消费者_rabbitMQ消息队列入门介绍
  8. Unity Shader 假光源效果
  9. 【单片机笔记】基于LM358的差分放大,电流检测电路
  10. 当程序员追求佛系,会发生什么……
  11. 特斯拉降维打击 国产电动车怎么“盘”?
  12. 显卡的GTX和RTX的实际意义在哪里?究竟该怎么选?
  13. 我回来啦,账号密码刚找回
  14. Mac OS下不产生.DS_Store 隐藏文件和清理.DS_Store的方法
  15. Macy‘s Thanksgiving Day Parade
  16. Oracle表空间满了解决方案
  17. 泛目录如何实现日收?
  18. Linux完全自学手册图文教程
  19. 胎儿面部超声切面识别
  20. Mac版 QQ如何将聊天图片放大

热门文章

  1. vue09动态树+数据表格+分页模糊查
  2. 兄弟7060D打印机开机提示:后部卡纸,打开后盖,并取出卡纸,然后按开始
  3. 大数据高级开发工程师——Hive学习笔记(2)
  4. “二分查找”算法的时间复杂度
  5. SetAttribute()改变属性值
  6. php 中文 encode,php 解决json_encode 时中文出现unicode编码
  7. 命令“***”已退出,代码为9009
  8. CorelDRAW软件Logo改名为Alludo
  9. 金融市场基础知识-全书读书笔记汇总
  10. 带你打造一套 APM 监控系统(二)