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