抖音直播间弹幕

This commit is contained in:
aiyingfeng 2023-06-29 20:20:53 +08:00
parent eb12d074bf
commit 3fca5659fb
8 changed files with 61 additions and 25 deletions

View File

@ -66,7 +66,7 @@ print(info)
打印的效果,二进制文件
b'\x08\xe8\x07\x10\xd0\x0f'
序列化后的二进制数据:b'\x08\xe8\x07\x10\xd0\x0f'
2.将数据反序列化
@ -80,15 +80,15 @@ print(p.logId)
打印的效果
1000
2000
反序列化后的真实数据1000 , 2000
## 二、websocket 连接
## 二、反序列化抖音数据
直播间弹幕是实时响应的这样数据显示方式大概率就是websocket协议
## 三、数据流过程
## 三、websocket 连接
直播间弹幕是实时响应的这样数据显示方式用websocket协议最方便但也是最容易破解的。
## 四、数据流过程
![debugger](./img/3.png)

File diff suppressed because one or more lines are too long

View File

@ -1,14 +0,0 @@
from douyin_pb2 import PushFrame, Response, ChatMessage
# p = PushFrame()
# p.seqId = 1000
# p.logId = 2000
# info = p.SerializeToString()
# print(info)
info = b'\x08\xe8\x07\x10\xd0\x0f'
p = PushFrame()
p.ParseFromString(info)
print(p.seqId)
print(p.logId)

View File

@ -0,0 +1,13 @@
from 抖音直播间弹幕.extractors.douyin_pb2 import PushFrame
p = PushFrame()
p.seqId = 1000
p.logId = 2000
info = p.SerializeToString()
print(f"序列化后的二进制数据:{info}")
info = b'\x08\xe8\x07\x10\xd0\x0f'
p = PushFrame()
p.ParseFromString(info)
print(f"反序列化后的真实数据:{p.seqId}, {p.logId}")

View File

@ -1,4 +1,4 @@
from douyin_pb2 import PushFrame, Response, ChatMessage
from 抖音直播间弹幕.extractors.douyin_pb2 import PushFrame, Response, ChatMessage
from urllib.parse import unquote_plus
from websocket import WebSocketApp
import requests
@ -67,8 +67,7 @@ def on_message(ws, content):
ws.send(s.SerializeToString())
# 获取数据内容需根据不同method使用不同的结构对象对 数据 进行解析)
# 注意:此处只处理 WebcastChatMessage ,其他处理方式都是类似的。
# 获取数据内容需根据不同method使用不同的结构对象对 数据 进行解析)注意:此处只处理 WebcastChatMessage ,其他处理方式都是类似的。
for item in response.messagesList:
if item.method != "WebcastChatMessage":
continue