Python执行js之PyexecJs

利用Python执行js

爬虫中会常常碰到JS加密,当咱们找到他加密的JS代码以后咱们须要获取它的返回值,python虽然能够模仿js写一个python版本的加密,可是这样有点费时间,也有点费头发~node

安装PyexecJS

注意:这块须要一个执行js的环境,我本地装的是NodeJSpython

pip install pyexecjsdom

执行JS

举一个例子以下:函数

import execjs
js = execjs.compile(''' function genpvid() {
                var a = (new Date).getTime();
                var b = "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(b) {
                    var c = (a + 16 * Math.random()) % 16 | 0;
                    return a = Math.floor(a / 16),
                    ("x" == b ? c : 3 & c | 8).toString(16)
                });
                return b
            }''')
result = js.call('genpvid') #call里面的参数第一个是js函数名称,若是要执行的js有参数,后面跟上参数就能够,如js.call('getpvid',2,3)这样
print(result)

结尾

这个的缺点是须要执行JS的环境,若是不想安装nodejs,能够试试另外一个库PyV8/js2py(js2py将 JS 代码直接转译成 Python 代码)加密

相关文章
相关标签/搜索