Python调用 nodejs 执行 javaScript 的 js 代码
前言全局说明
一、环境
1.1 nodejs环境:
https://www.cnblogs.com/wutou/p/18051375
1.2 python 安装运行 nodejs
pip install pyexecjs
二、js代码
文件名:v2.js
function func(arg) { return arg + '666'; }
三、使用python自带的方式,命令执行js代码
import os import subprocess # 根据自己的操作系统去修改(相当于python的sys.path,加载安装的模块) # 这不是你的node安装路径,是第三方包安装路径,输入:npm root -g os.environ["NODE_PATH"] = "/usr/local/lib/node_modules/" signature = subprocess.getoutput('node v1.js')
四、使用python 第三方模块,执行js代码
方式一:
import execjs import os os.environ["NODE_PATH"] = "/usr/local/lib/node_modules/" with open('v2.js', mode='r', encoding='utf-8') as f: js = f.read() JS = execjs.compile(js) sign = JS.call("func", "微信") print(sign) # 微信666
执行js 代码,要先使用 open 命令把代码读入,再交给 nodejs 解释器去运行
JS.call 就可以调用 v2.js 里指定函数func了,后面跟的参数是 "微信"
os.environ["NODE_PATH"] 命令是加载nodejs模块(如果系统环境加了路径,这句话可以不加)。NODE_PATH 指定的第三方模块路径,不是nodejs安装路径。
方式二:
比方式一写的方法简单
import execjs import os os.environ["NODE_PATH"] = "/usr/local/lib/node_modules/" JS = execjs.compile(open('v2.js', mode='r', encoding='utf-8').read()) sign = JS.call("func", "微信") print(sign) # 微信666
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
课件\006期\沛齐app\day04 头条
"2024-02-28_路飞_大型网站反爬策略揭秘&逆向实战-Day03\苑昊_bandicam 2024-02-29 12-18-21-409.mp4" 01:25:30
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2023-03-04 51电子-STC89C51开发板:汇编教程
2023-03-04 51电子-STC89C51开发板:使用KEIL编译汇编代码