python执行js缺少window变量_python使用execjs执行含有document、window等对象的js代码,使用jsdom解决...

当我们分析爬虫时,有时候会遇到一些加密参数,这个时候就需要我们逆向分析js

python执行js有一些第三方库

因为我用的Python3,所以没用PyV8(安装网上的方法,也没有安装好,可能我太笨了 - -! 如果有会的麻烦指点一下)

我用的比较多的就是js2py和execjs

有一次在分析js时,我已经找到了对应的加密方法,在浏览器上运行时,直接拿到了结果,开心的一匹

然我把js代码复制下来,在Python里通过js2py运行执行,发现报错,说

ReferenceError: window is not defined

想到这个浏览器里的对象,感觉很绝望,然后想到execjs依赖node执行,是否可以从这里突破

结果依然不行,因为在node里也是只能运行js语法,window 和 document等对象是没有的

后面机缘巧合之下,找到node里有一个库jsdom,这个库可以生成对应环境

全局安装命令

npm i jsdom -g

python执行js缺少window变量_python使用execjs执行含有document、window等对象的js代码,使用jsdom解决..._第1张图片

python执行js缺少window变量_python使用execjs执行含有document、window等对象的js代码,使用jsdom解决..._第2张图片

可以看到导入

你可能感兴趣的:(python执行js缺少window变量_python使用execjs执行含有document、window等对象的js代码,使用jsdom解决...)