本文主要是介绍websocket 监控某音网页版直播弹幕,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~
需求
监控某音网页版直播弹幕
正文
首先我们需要定位到弹幕传输的位置
因为是通过websocket进行传输的,所以我们可以全局先搜new websocket
onMessage是一个监听信息的方法
跳到当前这个位置,可以看到,deserializeBinary这个是将这个二进制字节进行一个序列化的方法,所以我们可以在这里下个断点,可以看到目前这个位置数据还是加密的。继续往下看
可以看到有一个.send方法,是用来发送数据
接收到服务器的数据响应r.toobject()
,里面的数据是加密的
emit方法
用于实现服务器向客户端广播事件,可以从这个位置跟进去查看数据
进到这个位置
可以看到deserializeBinary这个方法是一个解序列化的方法
s.toObject()就是我们的明文数据
接下来把这个js进行本地替换,注入我们的监听客户端
然后通过python开启服务端
import asyncio
import websocketsasync def echo(websocket):# 使用WebSocket在客户端和服务器之间建立全双工双向连接后,就可以在连接打开时调用send()方法。message = 'hello world'# 发送数据await websocket.send(message)return Trueasync def recv_msg(websocket):while 1:# 接收数据recv_text = await websocket.recv()print(recv_text)async def main_logic(websocket, path):await echo(websocket)await recv_msg(websocket)start_server = websockets.serve(main_logic, '127.0.0.1', 9999)
print('成功建立连接!!')
loop = asyncio.get_event_loop()
loop.run_until_complete(start_server)
# 创建了一个连接对象之后,需要不断监听返回的数据,则调用 run_forever 方法,要保持长连接即可
loop.run_forever()
最后
欢迎联系作者交流更多
这篇关于websocket 监控某音网页版直播弹幕的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!