二、execjs的call必须调用函数,可以在需要调用的js外添加function run(){}
三、execjs调用的函数内部只能运行一个函数
可以在webstorm中copy这个encode函数带上自己的用户名运行,返回的结果就是su的值,这个值在之后进行post提交的时候也会用到。如果对加密有一定经验的同学可能一眼就会看出这个是base64编码,python中有个base64模块可以干这个事情。
pyv8 的作用是在python中执行js代码,然后可以使用js里的变量等内容。python取得javascript里面的值、javascript取得python里面的值、python和javascript里面的函数交互mac下的安装:pip install -e git://github.com/brokenseal/PyV8-OS-X#egg=pyv8
安装后有两个文件:一个PyV8.py 另一个_PyV8.so
下面示例是执行js文件
from pyv8 import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
with open('/usr/graph.js') as f:
jsdata = f.read()# print jsdata
print ctxt.eval(jsdata)
下面是执行一段代码
import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval("""
(function(){
function hello(){
return "Hello world."
}
return hello()
})""")print func()
则在python环境中打印出js执行的结果:Hello world.
更多信息可参考《Linux就该这么学》