使用 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)
。
有没有办法可以通过Python
或javascript
连接到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)获取可见文本?