免责任声明:
任何可操作性的内容与本文无关,文章内容仅供参考学习,如有侵权, 损害贵公司利益,
请联系作者,会立刻马上进行删除
"先上车先吃肉,卡好后带货,卖号,引私域,接星途广告,接小程序广告,带小游戏赚收益均可"是不是听到这样的话热血沸腾?直接开个直播礼物直接变成钞票是不是很心动,但这生金蛋的鹅别人不会给你的,要不就是有偿买程序但是发现都是打包好的无法改,要不就是被平台发现雷同直接被封,所以还是要靠自己自力更生。
这种无人直播其实可以分为两个关键点。
1.如何把某直播间的数据拉取下来(目前是最难的)
2.找个朋友或者外包开发个简单小游戏就可以
废话不多说,我们这里直接获取直播用户数据,先看看效果图
这里实现了进入用户进入直播间,刷礼物,发言等基本操作。
接下来是分享原理的时刻
直播web端的协议从https变成wss,导致抓不到数据包了所以以前常规是抓包无法抓到了,但是发现返回的数据是protobuf这种新型通信协议, 在某平台里的私信也是走的pro协议实现的。具体想了解protobuf的资料同学可以自行百度一下。现在拿网上下载的源码进行改造。ps:原来网上的源码也是有问题,没办法爬取最新的直播数据。
把部分代码贴上来。
先把 https://live.XXXX/webcast/im/fetch/ 里面的用户数据,打赏数据下载下来,存放到文件中
def filterResponse(response):
if 'https://live.xxxx.com/webcast/im/fetch/' in response.url:
# print("<<", response.url)
with open('./LiveFile/' + uuid.uuid4().hex, 'wb') as file:
file.write(response.body())
else:
# print("--", response.url)
pass
return response
将下载下来的数据进行解密,解密成功后可以拿到用户基础数据
def startWatcher(self):
while True:
files = os.listdir(self.monitoringFile)
if files:
for _ in files:
filepath = self.monitoringFile + '\\' + _
with open(filepath, 'rb') as f:
# print(f.read())
response = message_pb2.Response()
response.ParseFromString(f.read())
for message in response.messages:
if message.method == 'WebcastChatMessage':
chat_message = ChatMessage()
chat_message.set_payload(message.payload)
# userID
userID = chat_message.user().id
# 发言
content = chat_message.instance.content
# 头像
userHeaderImg = chat_message.user().avatarThumb.urlList[0]
print(userID, content, userHeaderImg)
filePath = downloadImg(userHeaderImg,f"{getScriptDir()}\\userImages\\{userID}.jpg")
Socket.sendMsg(f"{userID}\0{content}\0{filePath}")
# 用户uid\0用户发送的消息\0用户头像路径
# print(chat_message)
try:
os.remove(filepath)
except PermissionError as e:
time.sleep(1)
os.remove(filepath)
time.sleep(2)
接下来最关键的是用户实体
这个实体正确后就可以直接解密出来