使用Python调用
pyv8(年久失修2010)
Js2py(年久失修+bug)
pyminiracer(不清楚)
PyExecJS(推荐)
检测
C:\Users\xxxxx>python
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import execjs
>>> execjs.get().name
'Node.js (V8)'
>>>
使用
建议大型js使用的运行模块
import execjs
jstext=""
function hello(str){return str;}
"""
ctx = execjs.compile(jstext)
# 第一个参数函数名,第二个传入的函数值
a = ctx.call("hello", 'hello word")
print(a)
建议大型js使用的传入参数模块
问题
执行大型JS慢
特殊编码的输入输出参数会报错,可以把输入或输出的参数使用base64编码一下
selenium执行JS代码
js = ‘一大段js’
result = browser.execute_script(js)
pyppeteer执行JS代码
在页面加载前调用js