Python如何调用js代码?python调用js代码的两种方式

日常Web端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码,通过调式,需要一点一点剥离出关键的 JS代码,使用 Python 去执行这段代码,得出参数加密前后的 Python 实现,今天一起来学习一下有关“Python如何调用js代码?python调用js代码的两种方式”的这篇文章吧!

Python如何调用js代码?python调用js代码的两种方式

文章插图
今天用一个简单的js代码为例,给大家介绍python调用js的两种方法,下面请看实例:
function add(n1, n2) {    return n1 + n2;}这两段代码中,我们是想定义了一个方法,可以用来计算两个数的和 。
方法一:使用PyExecJS
它是我们使用最多的一种方法,它可以在一个js环境下去执行另一个js代码,使用它之前,我们需要对它进行安装:
pip3 install PyExecJS使用方法如下:
def js_from_file(file_name):    """    读取js文件    :return:    """    with open(file_name, 'r', encoding='UTF-8') as file:        result = file.read()return result使用execjs类
import execjsfrom js_code import *使用call方法
result1 = context1.call("add",4,5)print(result1)在这个代码中,我们首先在一个js文件中读取出源代码,然后再使用execjs 类的compile()方法对js中的字符串进行加载,返回一个上下文对象,最后使用了一个call方法,对上下文对象进行调用,传入的参数是4和5,,最后程序运行的结果是9 。
方法二:js2py
它是一个js的解释器,它现在已经不需要js环境,就可以实现js代码和Python代码之间的进行转换操作,在使用之前同的要对它先进行安装,安装命令如下:
pip3 install js2py使用方法如下:
H1=js2py.EvalJs()H1.execute(js_content)result = H1.add(4,5)print(result)在这段代码中,我们首先使用了一个 js2py 中的EvalJs()方法生成一个上下文对象,任何对js代码进行执行操作,转换从python文件,最后利用对上下文调用js中的方法,对它进行参数的传递 。
【Python如何调用js代码?python调用js代码的两种方式】以上就是Python如何调用js代码?python调用js代码的两种方式的详细内容,希望通过这篇文章的学习,对家有所帮助 。

    推荐阅读