py调用js代码

  1. 使用 PyExecJS 模块!pyexecjs 是一个可以使用python来模拟运行javaScript的库。我们需要安装 pip install pyexecjs 对其进行环境安装
  • 注意本机电脑系统需要安装nodejs

如何使用

  1. 将调式好的js代码存放到js源文件中进行保存
  2. 在py文件中引入ExecJS 模块

    1. import execjs
    2. node = execjs.get()
  3. 对js源文件进行编译

    1. file='index.js'
    2. ctx =node.compile(open(file,encoding='utf-8').read())
  4. 调用编译好的js文件中的指定函数

    1. result = ctx.eval('getPwd("123456")')
    2. print(result)

    完整示列

    ```python import execjs node = execjs.get()

file = ‘index.js’ ctx = node.compile(open(file,encoding=’utf-8’).read())

result = ctx.eval(‘getPwd(“123456”)’) print(result)

  1. <a name="Sr7Um"></a>
  2. ## node 调用python 函数
  3. 1. node 向 python 函数传递参数
  4. 2. python 函数中接收参数 返回数据到node 是通过 print() 打印来返回的
  5. ```javascript
  6. var srcImgUrl="114.117.234.211:5970";
  7. var Urlid="dca1171e4a140b6564074931d67e1cb6"
  8. //异步执行
  9. exec('python ./web.py' + srcImgUrl + ' ' + Urlid, {encoding: 'utf8'},function(error,stdout,stderr){
  10. if(error) {
  11. console.info('stderr : '+stderr);
  12. }
  13. console.log('exec: ' + stdout);
  14. })
  15. //同步执行
  16. let output = execSync('python ./web.py ' + srcImgUrl + ' ' + Urlid, {encoding: 'utf8'})
  17. console.log(output.toString());
  1. import sys
  2. import requests
  3. def geterweima(c_url, id):
  4. # url = "http://localhost:3002/erci?urlhost=" + c_url + "&id="+id
  5. # url = "http://114.117.234.211:5970/wx/get?c=tz&id=dca1171e4a140b6564074931d67e1cb6"
  6. url = "http://"+ c_url +"/wx/get?c=tz&id="+id
  7. headers = {
  8. 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 Edg/100.0.1185.50",
  9. }
  10. try:
  11. response = requests.get(url, headers=headers, timeout=5)
  12. if response.status_code == 200:
  13. print(response.text)
  14. except Exception:
  15. print("2")
  16. geterweima(sys.argv[1],sys.argv[2])