DY和T K的Wss链接知识分享
声明
本文仅供自己学习使用,如有侵权请联系本人,即刻删除
简介
在这篇教程中,我们将介绍如何编写一个爬虫,用于获取DY和TK live中的实时弹幕信息。我们将使用Python编写爬虫,并展示如何通过逆向工程获取弹幕数据。
需求
使用协议采集到实时的douyin和TK的live消息信息
步骤
步骤一:获取直播弹幕的WebSocket地址
要抓取直播弹幕,首先我们需要找到直播弹幕的WebSocket地址。我们可以使用谷歌浏览器抓包,抓取DY和TK的网络请求,从中找到WebSocket地址。
1.1 找到RoomId
建立websocket链接需要先获取roomid,获取Roomid比较简单,直接请求直播间地址,在返回内容中获取。
1.2:连接到WebSocket并接收弹幕数据
想要建立链接还需要对请求参数进行逆向,我们这里逆向的参数字段是signature
步骤二
2.1 安装依赖库
pip install websocket-client requests
2.2 编写连接代码
以下是一个示例代码,用于连接到WebSocket并打印接收到的弹幕数据:
import websocket
import json
def on_message(ws, message):
data = json.loads(message)
print("Received message:", data)
def on_error(ws, error):
print("Error:", error)
def on_close(ws):
print("Connection closed")
def on_open(ws):
print("Connection established")
if __name__ == "__main__":
websocket_url = "wss://example.com/live" # 替换为抓包获得的WebSocket地址
ws = websocket.WebSocketApp(websocket_url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever()
步骤三:解析弹幕数据
不同平台的弹幕数据格式可能有所不同,我们需要根据具体格式解析数据。
3.1 dy弹幕解析
假设我们抓到的DY弹幕数据格式如下:
{
"type": "chat",
"data": {
"user": "user123",
"message": "Hello!"
}
}
我们可以在on_message函数中解析这个JSON数据:
def on_message(ws, message):
data = json.loads(message)
if data['type'] == 'chat':
user = data['data']['user']
chat_message = data['data']['message']
print(f"{user}: {chat_message}")
3.2 TK弹幕解析
假设我们抓到的TK弹幕数据格式如下:
{
"event": "comment",
"body": {
"user": "user456",
"text": "Hi there!"
}
}
我们可以在on_message函数中解析这个JSON数据:
def on_message(ws, message):
data = json.loads(message)
if data['event'] == 'comment':
user = data['body']['user']
comment = data['body']['text']
print(f"{user}: {comment}")
步骤四:运行爬虫
在完成上述代码编写后,运行程序即可开始接收并打印直播弹幕数据。
dy弹幕截图
TK弹幕信息截图
总结
通过上述步骤,我们成功编写了一个用于抓取DY和TK直播弹幕的程序。我们通过抓包和Js逆向获取了WebSocket地址和请求参数,并使用Python的websocket-client库连接到该地址,解析并打印了弹幕数据。
希望这个教程对你有帮助,如果有问题或者需要完整程序的,欢迎后台滴滴我😁!