优草派  >   Python

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 execjs
from 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代码的两种方式的详细内容,希望通过这篇文章的学习,对家有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行