爬取websocket(ws)数据2

本次带来的是策略中心的画像抓取,基本和数据银行差不多,首先进入策略中心后,点击消费者-消费者细分-选一个人群包透视,就能看到用户画像了。那么开始抓包吧。
在这里插入图片描述

发起请求部分,变量参数是id(每个标签对应唯一id),那就很简单了,把id全部搞下来就行了,我选择手敲,毕竟后续还要对应标签名称,还有一个rid,通过str(int(time.time() * 1000)) + str(self.count).zfill(2)生成,count起初为0,每发起一次请求count=count+1
在这里插入图片描述
在这里插入图片描述

headers部分Sec-WebSocket-Key是通过base64.b64encode(os.urandom(16)).decode(‘utf-8’).strip()生成
在这里插入图片描述

看到这里大家应该会有疑问,似乎提交的参数里没有指定人群包id,他是怎么知道我现在选择的是哪个人群包的呢,其实是通过cookie来判断的,经过测试,不同的cookie代表不同的人群包,这个过程是通过get一个指定人群id的网址来实现的,就是下面这个
在这里插入图片描述

来理一下思路,首先要获取x-csrf-token和人群id,然后get指定网址获得cookie,然后开启websoket提交带有标签id的json数据,即可获取数据,至于怎么处理获取的数据,就不多说了吧,都是小问题,ok上代码

小技巧:快速手敲标签id,以及他的对应名称,找到这个message,没啥特点,就是在一大堆请求的上方,仔细找找就能找到,然后双击全选复制,去https://json-csv.com黏贴进去,然后DOWNLOAD CSV,第三张图可以看到标签名和对应的id都出来了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面展示一下结果
在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用 WebSocket 收发 protobuf 数据,需要以下步骤: 1. 在 Vue 2 中安装 `protobufjs` 和 `ws` 两个库。 ``` npm install protobufjs ws ``` 2. 在 Vue 组件中引入 `protobufjs` 和 `ws`。 ```javascript import protobuf from 'protobufjs'; import WebSocket from 'ws'; ``` 3. 定义 protobuf 的消息类型,并编译成可用的代码。 ```javascript const root = protobuf.Root.fromJSON(require('./path/to/protobuf.json')); const message = root.lookupType('message.package.MessageType'); const buffer = message.encode(messageObject).finish(); ``` 4. 建立 WebSocket 连接。 ```javascript const ws = new WebSocket('ws://localhost:8080'); ``` 5. 发送数据,将 protobuf 编码后的数据发送到 WebSocket 服务器。 ```javascript ws.send(buffer); ``` 6. 接收数据,将 WebSocket 接收到的二进制数据解码成 protobuf 消息类型。 ```javascript ws.onmessage = function(event) { const data = event.data; const decodedMessage = message.decode(new Uint8Array(data)); console.log(decodedMessage); }; ``` 注意:在 Vue 组件中使用 WebSocket 时,需要在 `mounted` 生命周期函数中建立连接,在 `beforeDestroy` 生命周期函数中关闭连接。例如: ```javascript export default { data() { return { ws: null }; }, mounted() { this.ws = new WebSocket('ws://localhost:8080'); this.ws.onopen = function() { console.log('WebSocket connection established'); }; this.ws.onclose = function() { console.log('WebSocket connection closed'); }; this.ws.onerror = function(event) { console.error('WebSocket error:', event); }; this.ws.onmessage = function(event) { const data = event.data; const decodedMessage = message.decode(new Uint8Array(data)); console.log(decodedMessage); }; }, beforeDestroy() { this.ws.close(); } }; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值