DY、Tk的Wss连接知识分享

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库连接到该地址,解析并打印了弹幕数据。

希望这个教程对你有帮助,如果有问题或者需要完整程序的,欢迎后台滴滴我😁!

Spring Boot是一个非常流行的Java Web框架,它提供了一种简单的方式来构建现代Web应用程序。Spring Boot支持用WebSocket在客户端和服务器之间提供实时交互的功能。也就是说,Spring Boot和WebSocket在业务场景中的应用非常广泛。此外,如果需要安全加密的连接,可以使用WebSocket over SSL (wss)协议。 下面介绍一下如何在Spring Boot中配置wss连接: 1. 配置证书 在Spring Boot中,要使用wss连接,必须启用SSL,并配置证书。自己生成的证书可以使用Java Keytool命令生成,也可以使用商业证书。需要将证书保存到Spring Boot工程的某个路径中。 2. 配置Tomcat Spring Boot使用的默认Web容器是Tomcat,要开启wss连接需要在application.properties文件中添加如下配置: ``` server.port=8443 server.ssl.key-store=classpath:/keystore/yourKeyStore.jks server.ssl.key-store-password=yourPassword server.ssl.key-password=yourPassword server.ssl.keyAlias=yourKeyAlias ``` 这里server.port是SSL协议默认端口,server.ssl.key-store为证书的路径和名称,server.ssl.key-store-password和server.ssl.key-password为证书的密码,server.ssl.keyAlias为证书的别名。 3. 添加支持WebSocket的依赖包 在Spring Boot工程的maven项目中,需要添加如下的依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 4. 编写WebSocket处理类 在Spring Boot中需要有一个WebSocket处理类来处理与客户端的交互。示例代码如下: ``` @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS(); } @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } } ``` 这里使用了Spring的两个注解@Configuration和@EnableWebSocketMessageBroker。registerStompEndpoints方法是为了建立WebSocket连接,并且允许跨域访问。configureMessageBroker方法的作用是配置消息代理和目的头前缀。 5. 在控制器中使用WebSocket 在具体的控制器中,可以使用sendMessage方法来向客户端发送消息,如下所示: ``` @Autowired private SimpMessagingTemplate messagingTemplate; ... @GetMapping("/test") public void sendMessage() { messagingTemplate.convertAndSend("topic/test", "Hello World!"); } ``` 这里@Autowired是注入SimpMessagingTemplate,sendMessage方法是将消息发布到指定的主题中。 通过以上这些步骤,就可以在Spring Boot中完成wss连接的构建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值