execjs的使用


1、安装PyExecJS包

pip3 install PyExecJS

2、本地安装Node.js:

3、Node中安装jsdom模块 npm install jsdom 

4、JS文件开头添上下述固定代码

//解决TextEncoder is not defined
const textencoding = require('text-encoding');
TextEncoder = textencoding.TextEncoder;
TextDecoder = textencoding.TextDecoder;

//解决浏览器环境问题
const jsdom = require("jsdom");
const {JSDOM} = jsdom;
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>');
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;

5、python脚本中execjs的使用

import execjs #导入

#生成JavaScript运行环境,环境名可以指定
node = execjs.get() #安装nodejs后,会得到运行环境名为:Node.js (V8)

with open('js_code.js',encoding='utf-8') as f:
    js_code = f.read()

#编译js代码
ctx = node.compile(js_code, cwd=r'E:\Nodejs\node_modules\npm\node_modules') #compile方法去加载js代码,参数cwd指定本地安装模块所在目录

#两种方式执行js函数
data1 = ctx.eval('getParam({"city":"北京"})')  #eval方法中,整个函数调用包含在字符串内
data2 = ctx.call('getParam',{'city':'北京'})  #call方法中,第一个参数是函数名(str),后面接参数

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM