抖音直播间匿名采集软件,带接口wss,易语言源码分享

发布时间 2023-11-14 20:46:51作者: 新壳软件

软件是易语言开发的,然后不用调用浏览器,直接截取wss数据,客户采集匿名的数据,源码我这边会公开,核心的部分。

框架图:

 

采集出来的效果

 

易语言核心代码:

=================================================

.版本 2

.支持库 EThread

.支持库 spec

 

.程序集 窗口程序集_窗口1, , , 744894369

 

.子程序 _窗口1_创建完毕

.局部变量 pe, 整数型

 

模块初始化_421 ()

客户端_全局初始化 (真)

客户端_全局绑定事件 (&WS连接成功, &WS将被断开, &WS消息到达, &WS连接错误)

 

 

.子程序 WS连接成功, 整数型

.参数 连接ID, 整数型, , 连接ID

 

id = 连接ID

输出调试文本 (“WS连接事件: ” + 到文本 (连接ID))

启动线程 (&hear, , )

返回 (0)

 

 

.子程序 WS将被断开, 整数型

.参数 连接ID, 整数型, , 连接ID

.参数 错误类型, 整数型, , enOperation(#SO_ 开头常量)

.参数 错误代码, 整数型

 

调试输出 (“WS断开事件: ” + 到文本 (连接ID), 错误类型, 错误代码)

返回 (#HR_OK)

 

 

.子程序 WS连接错误, 整数型

.参数 连接ID, 整数型

.参数 iErrorCode, 整数型

.参数 lpszErrorDesc, 文本型

 

调试输出 (“WS连接错误: ” + 到文本 (连接ID), iErrorCode, lpszErrorDesc)

 

返回 (#HR_OK)

 

.子程序 WS消息到达, 整数型

.参数 连接ID, 整数型, , 连接ID

.参数 数据指针, 整数型, , 这里的 数据指针 只能使用  客户端_取回文本  客户端_取回数据

.参数 数据长度, 整数型, , 使用  指针到字节集会崩溃哦

.局部变量 操作码, 字节型, , , 操作码:0x0 - 0xF (0=连续消息分片 1=文本消息分片 2=二进制消息分片 8=连接关闭 9=心跳Ping 10=心跳Pong)

.局部变量 str, 文本型

.局部变量 bin, 字节集

.局部变量 掩码, 整数型

.局部变量 rsv, 字节型

.局部变量 jsonData, 文本型

.局部变量 json, 类_json

.局部变量 max, 整数型

.局部变量 i, 整数型

.局部变量 t, 文本型

 

客户端_取回消息状态 (连接ID, , rsv, 操作码, 掩码, )

.判断开始 (操作码 = 2)

    bin = 客户端_取回数据 (数据指针, 数据长度)

    bin = 取字节集右边 (bin, 取字节集长度 (bin) - 寻找字节集 (bin, { 31, 139, 8, 0, 0, 0, 0, 0, 0 }, ) + 1)

    bin = 网页_GZIP解压 (bin)

    jsonData = 编码_utf8到gb2312 (PB转JSON (bin))

    json.解析 (jsonData)

    max = json.成员数 (“”)

    .计次循环首 (max, i)

        t = 到文本 (i - 1)

        .如果真 (json.取通用属性 (“[” + t + “].value[0].value”) = “WebcastChatMessage”)

            调试输出 (json.取通用属性 (“[” + t + “].value[1].value[1].value[2].note”), json.取通用属性 (“[” + t + “].value[1].value[2].note”))

        .如果真结束

 

    .计次循环尾 ()

 

.判断 (操作码 = 8)

    返回 (#HR_ERROR)  ' 断开

.判断 (操作码 = 9)

    返回 (#HR_IGNORE)

.默认

 

.判断结束

返回 (#HR_OK)

 

.子程序 PB转JSON, 文本型, 公开

.参数 PB数据, 字节集

.局部变量 p, 整数型

.局部变量 s, 文本型

 

p = PbToJson (PB数据, 取字节集长度 (PB数据))

s = 指针到文本 (p)

Cfree (p)

返回 (s)

 

 

.子程序 字节集倒序, 字节集

.参数 bin, 字节集

.局部变量 bin1, 字节集

.局部变量 x, 整数型

.局部变量 max, 整数型

 

bin1 = bin

max = 取字节集长度 (bin)

.计次循环首 (max, x)

    bin1 [x] = bin [max - x + 1]

.计次循环尾 ()

返回 (bin1)

 

.子程序 JSON转PB, 字节集, 公开

.参数 PB数据, 文本型

.局部变量 p, 整数型

.局部变量 len, 整数型

.局部变量 bin, 字节集

 

len = 取文本长度 (PB数据)

p = JsonToPB (PB数据, len)

.如果真 (p = 0)

    返回 ({  })

.如果真结束

bin = 字节集倒序 (指针到字节集 (p, 8))

len = 取字节集数据 (bin, #长整数型, )

返回 (指针到字节集 (p + 8, len))

 

 

.子程序 _按钮2_被单击

.局部变量 bool, 逻辑型

.局部变量 erro, 文本型

 

 

 

id = 客户端_连接 (编辑框1.内容, q_ck, , , , erro)

.如果真 (id = 0)

    输出调试文本 (“连接失败”, erro)

    返回 ()

.如果真结束

输出调试文本 (“连接成功: ” + 到文本 (id))

 

.子程序 hear

 

.判断循环首 (真)

    程序_延时 (10 × 1000)

    客户端_发送消息体数据 (id, 编码_BASE64解码 (“OgJoYg==”, ))

.判断循环尾 ()

===========================================================