Python调用 JS -PyExecJS
日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码
通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Python 实现
//计算两个数的和
function add(num1, num2) {
return num1 + num2;
}
安装
https://github.com/doloopwhile/PyExecJS
PyExecJS 是使用最多的一种方式,底层实现方式是:在本地 JS 环境下运行 JS 代码
pip install PyExecJS==1.5.1
调用JS代码
import execjs
js_content = '''
function add(num1, num2) {
return num1 + num2;
}
'''
# 编译加载js字符串
pej = execjs.compile(js)
rs = pej.call("add", 2, 3)
print(rs)
Python 调用 JS -js2py
https://github.com/PiotrDabkowski/Js2Py
js2py作为一个纯 Python 实现的 JS 解释器,可以完全脱离 JS 环境,直接将 JS 代码转换为 Python 代码
pip install js2py==0.71
然后使用 js2py 中的EvalJs()方法生成一个上下文对象
import js2py
js_source='''
function add(num1,num2){
return num1+num2
}
'''
# 建立js执行的上下文
ctx = js2py.EvalJs()
# 解析js代码
ctx.execute(js_source)
# 调用js里的方法
rs = ctx.add(100,210)
print(rs)
标签:调用,num1,PyExecJS,Python,js,js2py,JS From: https://www.cnblogs.com/jiangjiayun/p/17539101.html