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