python运行js代码的几种方式:subprocess、execjs
一、subprocess 模块
import subprocess ret = subprocess.check_output(['node','youdao.js']) print(type(ret),ret) #<class 'bytes'> b"___rl__test__cookies=1637655216598;OUTFOX_SEARCH_USER_ID_NCOO=1460134891.3288116;expires=Thu, 23 Nov 2023 08:13:36 GMT;path=/;domain=.youdao.com\nundefined\n{\n ts: '1637655216608',\n bv: '4f7ca50d9eda878f3f40fb696cce4d6d',\n salt: '16376552166089',\n sign: '42dabd5917af782bad3afba21ced5144'\n}\n4f7ca50d9eda878f3f40fb696cce4d6d\n"
二、execjs 模块
import execjs import os # 指定js运行环境 os.environ['EXECJS_RUNTTIME'] = "Node" # 1. 读取js文件的内容 with open('youdao.js',encoding='utf-8') as fd: jscontent = fd.read() # 2. 编译js代码 context = execjs.compile(jscontent) # 3. 调用要执行的函数 r = context.call('query') print(r) # {'ts': '1637655581710', 'bv': '4f7ca50d9eda878f3f40fb696cce4d6d', 'salt': '16376555817108', 'sign': 'c63a0191ba89dab00dd03d321f9c9bde'}