使用 Python 或 JavaScript 获取到 WhatsApp 的 websocket 连接?

Posted

技术标签:

【中文标题】使用 Python 或 JavaScript 获取到 WhatsApp 的 websocket 连接?【英文标题】:Get websocket connection to WhatsApp using Python or JavaScript? 【发布时间】:2021-08-07 05:35:23 【问题描述】:

我从 chrome 网络选项卡复制 websocket 请求并尝试将其用作 fetch,但显然无法正常工作,因为 fetch 仅支持 HTTP(S)

有没有办法可以通过Pythonjavascript 连接到WhatsApp websocket 连接?

【问题讨论】:

也许 CORS 策略阻止了这种情况。 Mybe 唯一可能从“web.whatsapp.com”建立到“wss://web.whatsapp.com/ws”的 ws 连接 @Marc 我在同一个域上尝试过,但没有成功。我确定我应该在标头中包含与 cookie 或会话身份验证相关的内容(有 wa_csrf 但 js 不允许在 websocket 连接中发送自定义标头)。 【参考方案1】:

您可以使用 chrome 连接到套接字

let socket = new WebSocket("wss://web.whatsapp.com/ws");


socket.onopen = (e)=>console.log("connected")

socket.onmessage = (e)=>console.log("msg",e)

socket.onerror = (e)=>console.log("error",e)

但您无法收听消息。

【讨论】:

这会抛出 403 Forbidden,因为您应该针对 WhatsApp 验证自己的身份。【参考方案2】:

您需要使用flask-socketio 和javascript 套接字库。这些步骤是连接然后将数据发送到提到的功能。您需要阅读文档,因为它非常简单。

【讨论】:

哦,伙计,您没有仔细阅读问题。我知道如何使用任何一种语言的 websockets,但不知道如何连接到 whatsapp 并授权自己获取事件流。 为什么是“flask-scoketio”? 这样,您将拥有一个连续的服务器,它使用 python 烧瓶作为 Web 服务器来监听它。【参考方案3】:

我不知道这是否会有所帮助,您始终可以在 node.js 中使用 WebSocket。同样,socketio 模块在 python 中可用。

我在本地机器上尝试过,但是套接字服务器抛出了一个意外的 Forbiden 403 错误。

不管怎样,这就是例子:

const WebSocket = require('ws')
var socket = new WebSocket("wss://web.whatsapp.com/ws")

socket.onopen = (e)=>console.log("connected")

socket.onmessage = (e)=>console.log("msg",e)

socket.onerror = (e)=>console.log("error",e)

WebSocketGithub 回购链接

【讨论】:

这会抛出403 Forbidden,因为您应该针对 WhatsApp 验证自己的身份。

以上是关于使用 Python 或 JavaScript 获取到 WhatsApp 的 websocket 连接?的主要内容,如果未能解决你的问题,请参考以下文章

获取在 Python 中使用 Javascript 生成的页面

如何使用javascript从网页中获取点击或选择的文本? [复制]

从 javascript onclick 返回值到变量或使用 onclick 更改全局变量

如何使用 jQuery(或 Javascript)获取可见文本?

使用 javascript 或 php 从图像中获取所有 HEX 值

jsp页面中使用javascript获取后台放在request或session中的值