当前位置:首页 > 技术杂坛 > 正文内容

python运行js代码的几种方式:subprocess、execjs

zhangchap2年前 (2021-11-23)技术杂坛345

一、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'}


分享给朋友:

相关文章

destoon任意页面调用公司介绍

{php $r = userinfo($username);} <!--{php $tags=tag("table=company_data&condition=userid=...

宝塔一个站点如何绑定多个域名ssl证书?

宝塔一个站点如何绑定多个域名ssl证书?

1.如果网站不是自适应 2.程序不会在访问的时候自动判断客户端,返回不同的内容。(js跳转的不在这个范围内) 现在一个站点往往绑定至少两个域名,pc、m各一个,甚至频道有二级域名的话,那...

video视频提示没有找到支持的视频格式和MIME类型解决方案

初次尝试用 html5的 video 标签添加适配,代码如下: <link href="//vjs.zencdn.net/7.8.2/video-js.min.css"...

pip install 安装出现:Requirement already satisfied 的解决办法

刚开始装上python安装轮子挺顺利的,后来再使用pip install 安装开始报错,网上有解决方案说用国内的源就没问题,但是我的源早就改成国内的了,用了另外一种解决方案,搞定加上--target参...

python 字典排序

prefix_word = {'怎么': 4, '昨晚': 27, '会': 56...

elasticsearch相关概念

集群:有多台服务器,每台服务器都运行这ESindex:索引,相当于数据库index_type:"_doc" # 数据表document:数据信息mapping映射字段类型:bina...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。