websocket

作者: 奇楠之后 | 来源:发表于2020-07-10 09:56 被阅读0次

首先本篇文章的主要目的是了解websocket协议,并将其使用在爬虫领域

什么是websocket

websocket(简称ws)是一个基础tcp连接的通信协议,通过http(一次握手)建立连接,与http协议最大不同的是: websocket是全双工通信,服务器可以主动向客户端发送消息,而http1.1是半双工,只能等待客户端请求给响应。
协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

ws://example.com:80/some/path

那么与爬虫又有什么关系呢?
在web爬虫,我们经常会JavaScript逆向分析一个参数的生成,大部分的做法是把相关代码扣到本地调试分析,补充浏览器环境,使用node开发一个express接口,供爬虫调用。
使用了websocket之后,我们只需找到参数加密函数入口,使用中间人攻击方式向浏览器注入js(让浏览器成为websocket客户端),使用python编写websocket服务端,并开发一个api,爬虫向这个api提交参数,该api将参数转给服务端函数,服务端将参数发送给浏览器(前面注入的js),浏览器拿到参数,会调用加密函数对参数进行处理,得到结果返回给服务端。

websocket的使用

1. 客户端API

使用JavaScript实现,使用中间人攻击将这段脚本注入

阮大写的很全,这里做简单记录

// 创建一个websocket实例
var ws = new WebSocket('ws://localhost:8080');
  • webSocket.onopen 用于指定连接成功后的回调函数
  • webSocket.onclose 用于指定连接关闭后的回调函数
  • webSocket.onmessage 用于指定收到服务器数据后的回调函数
  • webSocket.send 用于向服务器发送数据
  • webSocket.readyState 返回实例对象的当前状态

具体案例

haha
服务端API

使用python实现

相关文章

网友评论

      本文标题:websocket

      本文链接:https://www.haomeiwen.com/subject/ghjpcktx.html