有时候斗鱼的弹幕服务器不好用,所以会出现错误,爬不到东西。
一些要求具体参考斗鱼的开放api协议。
# -*- coding:utf-8 -*-
import socket
import re
import time
import struct
from multiprocessing import Process
# 根据斗鱼开放api协议,链接所必需的一些东西。
url = 'openbarrage.douyutv.com'
port = 8601
host = socket.gethostbyname(url)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
ticks = time.asctime(time.localtime(time.time()))
# 处理数据便于发送
def pack_msg(msg):
code = 689
msg_len = len(msg) + 8
return struct.pack("iihbb", msg_len, msg_len, code, 0, 0) + msg.encode('utf-8')
# 保持心跳持续登录
def keep_alive():
s.send(pack_msg('type@=mrkl/' + '\0'))
time.sleep(40)
# 登录请求,登录606118房间
login = 'type@=loginreq/roomid@=606118/\0'
s.send(pack_msg(login))
# 入组请求
joinGroup = 'type@=joingroup/rid@