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



posted @   悟透  阅读(272)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-03-04 51电子-STC89C51开发板:汇编教程
2023-03-04 51电子-STC89C51开发板:使用KEIL编译汇编代码
点击右上角即可分享
微信分享提示