1.最全总结!获取后源聊聊 Python 调用 JS 的执行s执几种方式
最全总结!聊聊 Python 调用 JS 的码获几种方式
日常Web端爬虫过程中,我们可能遇到参数被加密的行后场景,此时,源码分析网页源代码,失败网站源码建设视频通过调式剥离出关键的获取后源JS代码,使用Python执行这段代码,执行s执实现参数加密前后转换。码获本文将介绍Python调用JS的行后四种方式。
在准备阶段,源码我们将一段简单的失败JS脚本保存为文件。比如定义了一个计算两个数和的获取后源方法。
方法一:PyExecJS,执行s执这是码获易易双色球源码使用最多的方式。底层通过本地JS环境执行JS代码。支持Node.js、PyV8、PhantomJS、Nashorn等环境。首先安装PyExecJS依赖包。从JS文件读取源码,分红农场的源码使用execjs类的compile()方法编译加载JS字符串,获取上下文对象。最后调用上下文对象的call()方法执行JS方法。注意,PyExecJS在本地环境运行,启动JS环境导致运行速度偏慢。更多信息可查看github.com/doloopwhile/...
方法二:js2py,京东登录钓鱼源码一个纯Python实现的JS解释器。可以将JS代码转换为Python代码,完全脱离JS环境。安装依赖库后,通过EvalJs()方法生成上下文对象,执行JS脚本,转换为Python代码,云手机搭建源码利用上下文调用JS方法,制定输入参数。注意,对于复杂的混淆代码,转换过程可能会报错。更多信息可查看github.com/PiotrDabkows...
方法三:Node.js,通过Python的os.popen执行Node命令,执行JS脚本。确保本地安装了Node.js环境,修改JS脚本新增导出函数init,方便内部函数调用。将调用JS方法的命令组成字符串,通过os.popen执行。
方法四:PyV8,Google将Chrome V8引擎用Python封装的依赖库,不依赖本地JS环境,运行速度较快。但在MAC和PC下使用Python3环境下,发现各种奇怪的问题,不推荐使用。更多信息可查看github.com/emmetio/pyv8...
总结以上四种方式,实际爬虫项目中,通常先使用Node命令进行测试,确保无误后,再选择前三种方式之一进行Python代码重写。