使用 PyExecJS 库
PyExecJS 是一个流行的 Python 库,允许在 Python 中执行 JavaScript 代码。它支持多种 JavaScript 运行时环境,如 Node.js、PhantomJS 等。
安装 PyExecJS:
pip install PyExecJS
示例代码:
import execjs
# 创建一个 JavaScript 环境
ctx = execjs.compile("""
function add(a, b) {
return a + b;
}
""")
# 调用 JavaScript 函数
result = ctx.call("add", 1, 2)
print(result) # 输出 3
使用 Node.js 子进程
通过 Python 的 subprocess 模块可以调用 Node.js 执行 JavaScript 代码。这种方法适合执行复杂的 JavaScript 脚本或文件。
示例代码:
import subprocess
# 定义 JavaScript 代码
js_code = """
console.log(1 + 2);
"""
# 通过 Node.js 执行
result = subprocess.run(
["node", "-e", js_code],
capture_output=True,
text=True
)
print(result.stdout) # 输出 3
使用 PyMiniRacer
PyMiniRacer 是 V8 引擎的 Python 封装,性能较高,适合需要快速执行 JavaScript 的场景。
安装 PyMiniRacer:
pip install py-mini-racer
示例代码:
from py_mini_racer import MiniRacer
# 创建 V8 引擎实例
ctx = MiniRacer()
# 执行 JavaScript 代码
result = ctx.execute("1 + 2")
print(result) # 输出 3
使用 Js2Py
Js2Py 是一个纯 Python 实现的 JavaScript 解释器,无需依赖外部环境。
安装 Js2Py:
pip install js2py
示例代码:
import js2py
# 执行简单的 JavaScript 代码
result = js2py.eval_js("1 + 2")
print(result) # 输出 3
# 调用 JavaScript 函数
add = js2py.eval_js("function add(a, b) { return a + b; }")
print(add(1, 2)) # 输出 3
使用 Selenium
如果需要执行浏览器中的 JavaScript 代码(如操作 DOM),可以使用 Selenium。
安装 Selenium:
pip install selenium
示例代码:
from selenium import webdriver
# 启动浏览器
driver = webdriver.Chrome()
# 执行 JavaScript 代码
result = driver.execute_script("return 1 + 2;")
print(result) # 输出 3
driver.quit()
注意事项
- 性能要求较高时,优先选择 PyMiniRacer 或 Node.js 子进程。
- 需要浏览器环境时,使用 Selenium。
- 纯 Python 环境且无复杂需求时,可以选择 Js2Py 或 PyExecJS。

1万+

被折叠的 条评论
为什么被折叠?



