Python 使用execjs调用网页js 进行数据加密

最近做一个数据采集项目的时候需要自动采集网站的招投标数据 ,随便打开一个网站

打开开发者模式,输入关键词,点击搜索,获得以下内容

Python 使用execjs调用网页js 进行数据加密_第1张图片

可以看到请求链接和请求类型,请求类型Content-Type:是application/x-www-form-urlencoded,就是form表单提交的格式key=value&key=value,这里可以看到请求的data的内容 

请求的data里其他都认识唯独这个tk似乎是新面孔,不知道是哪来的 ,经过测试tk还是必传参数

Python 使用execjs调用网页js 进行数据加密_第2张图片

 所以这里就开始搜索 直接ctrl+f 搜索关键词 tk

Python 使用execjs调用网页js 进行数据加密_第3张图片

 可以看到 var tk=subdd();  继续搜索 subdd函数,找到生成tk的这个js文件,将代码复制到本地

 Python 使用execjs调用网页js 进行数据加密_第4张图片

 得到的就是这么个js文件,仔细观察。发现是通过Ajax请求ext/search/keyPair.action这个接口获得数据,然后使用RSAKeyPair和encryptedString这两个函数进行加密,而这两个函数在这个文件里面没有,OK ,继续搜索 ,最后将需要用到的函数全部搞到手之后可以开始研究了

Python 使用execjs调用网页js 进行数据加密_第5张图片

Python 使用execjs调用网页js 进行数据加密_第6张图片Python 使用execjs调用网页js 进行数据加密_第7张图片

 这里给js函数做一下修改

Python 使用execjs调用网页js 进行数据加密_第8张图片

将ajax请求拿出来单独请求,得到加密需要的三个参数,然后使用execjs模块调用刚才的js文件

安装execjs模块:pip install PyExecJS 

Python 使用execjs调用网页js 进行数据加密_第9张图片

 

 最后得到结果tk ,调用RSA函数测试,数据插入成功。

Python 使用execjs调用网页js 进行数据加密_第10张图片

你可能感兴趣的:(python,python,execjs,js)