当前位置:首页 » 文件管理 » pako解压

pako解压

发布时间: 2024-03-16 00:06:24

‘壹’ 怎么样python爬虫进行此网站爬取

  • 加密的,解密方法在JS里面可以弄出来。

  • 首先要AES解密,可以【Python:import Crypto.Cipher.AES】包,解密mode是CFB,seed是"userId:"+uid+":seed"的SHA256值,解密的key是seed[0:24],iv是seed[len(seed)-16:]。

  • 如果没有登录,uid就是用的"anyone",这时候的seed是"",也就是key为"61581AF471B166682A37EFE6",iv为"C8F203FCA312AAAB"。

  • 解密后文件是压缩过的,解压即可得到一个JSON。这部分解压我没仔细看他的算法,好像是gzip,直接用【Python:import gzip】解压有点出错,可能没用对或者不是这个算法,你在研究一下。第二种投机的方法就是,可以通过【Python:import execjs】直接调用他的pako.js文件的JS的inflate()函数来解压这块。JS代码混淆后看起来是非常难懂的,使用这种做法可以不用太看懂加密的算法,效率当然写Python实现这个解密算法低1点咯。

  • 最后的JSON再用【Python:import demjson】解析,text的value就是文档。

‘贰’ 2020-11-18 gzip 前后端数据传输压缩‘pako’

 let zlib = require("pako"); //引入

//压缩方法 用来将大数据压缩后在传给后端

Vue.prototype.zip = function (str) {

            //encodeURIComponent 将字符串作为URI组件进行编码

            //zlib.gzip() 将编码后的数据进行压缩,string类型

            let binaryString = zlib.gzip(encodeURIComponent(str), {

                to: "string"

            });

            //btoa()将压缩后的数据变成base64格式

            return btoa(binaryString);

        },

//解压缩方法,前端接受后端大数据后,先解压缩在进行后面的逻辑

        Vue.prototype.unzip = function (b64Data) {

            //atob()将base64格式数据转化成压缩数据

            let strData = atob(b64Data);

            //split()方法用于把一个字符串分割成字符串数组

            //通过map函数进行遍历,并对每一个进行 Unicode 编码

            let charData = strData.split("").map(function (x) {

                //charCodeAt() 方法可返回指定位置的字符的 Unicode 编码

                return x.charCodeAt(0);

            });

            //Uint8Array 8 位无符号整数值的类型化数组

            let binData = new Uint8Array(charData);

            // console.log(binData);

            //解压缩 充气

            let data = zlib.inflate(binData);

            //fromCharCode 将 Unicode 编码转为一个字符:

            // console.log(data);

           //分片解压缩,防止数据量过大,浏览器栈溢出报错

            let chunk = 8 * 1024;

            let res = "";

            let dataLength = data.length / chunk;

            let i;

            for (i = 0; i < dataLength; i++) {

                res += String.fromCharCode.apply(

                    null,

                    data.slice(i * chunk, (i + 1) * chunk)

                );

            }

            res += String.fromCharCode.apply(null, data.slice(i * chunk));

            //decodeURIComponent() 对 encodeURIComponent() 函数编码的 URI 进行解码

            strData = res;

            return decodeURIComponent(strData);

        },

2021-02-20:

    问题更新:最新客户在使用的过程中,发现页面展示会出现莫名其妙的“+”。

    对此,我们进行了一番查询,发现问题原因如下:后端在将数据压缩的过程中,正常情况下会将数据中的“+”号编码成%2B,同时会将“ 空格 ”编码成“%20”,那么前端接收以后,就可以进行解码。

    但是,我们发现数据中的“+”会被正常编码,但是空格却不会,而是编码成了“+”.那么,前端接收以后在解码的过程中,就无法对“+”进行解码,就会造成显示和真实数据不一致。

解决方案:后端在压缩完成后,再将所有的“+”编码替换成“%20”,这样,在前端接收数据后,就能将数据正常解码并显示。

‘叁’ vue 基于pako.js实现gzip的压缩和解压功能

后台返回的数据是gzip 加密过的,需要解压数据,如下图所大型行示:

我们需要上图标出来的租念加密滚哗数据进行解密出来
1 安装 :

2 使用

热点内容
数据库脚本和job 发布:2024-05-13 14:35:58 浏览:137
phantomjspython 发布:2024-05-13 14:31:48 浏览:256
ios如何登安卓账号 发布:2024-05-13 14:23:58 浏览:330
linux绑定域名 发布:2024-05-13 14:23:44 浏览:832
手机大学编程 发布:2024-05-13 14:23:42 浏览:193
php投注 发布:2024-05-13 14:10:07 浏览:755
进阶版自行车建议装什么配置 发布:2024-05-13 13:57:01 浏览:126
sql表中输入数据 发布:2024-05-13 13:31:01 浏览:878
生成函数语法树编译原理 发布:2024-05-13 13:29:18 浏览:662
快手上传视频有钱吗 发布:2024-05-13 13:24:08 浏览:172