Python中如何执行JavaScript代码
请问这里有没有 python, js 方面的大牛?我现在用 python 的 pyv8 来执行一段 js 代码,出了很多错。这段 js 代码可能有点复杂,请问有没有大牛有兴趣试一下,我愿意付报酬,谢谢。
Python中如何执行JavaScript代码
貌似最简单的解决方法是,直接 python 结合 node 处理 JS , 之前处理 JS,就是用这种方法。 本人小白,不懂 node,也不熟悉 python, 只是有过类似才处理、
在Python里跑JS代码,最直接的办法是用execjs库,它封装了Node.js环境。先装依赖:
pip install PyExecJS
然后确保你系统里有Node.js。下面是个完整例子:
import execjs
# 创建JS运行时环境
ctx = execjs.compile("""
function add(a, b) {
return a + b;
}
function greet(name) {
return "Hello, " + name + "!";
}
""")
# 调用JS函数
result1 = ctx.call("add", 5, 3)
result2 = ctx.call("greet", "World")
print(f"加法结果: {result1}") # 输出: 加法结果: 8
print(f"问候语: {result2}") # 输出: 问候语: Hello, World!
如果你需要执行更复杂的JS代码或者操作DOM,可以用js2py:
import js2py
# 直接执行JS代码
js_code = """
function factorial(n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
factorial(5)
"""
result = js2py.eval_js(js_code)
print(f"阶乘结果: {result}") # 输出: 阶乘结果: 120
# 也可以把JS函数转成Python可调用对象
js_func = js2py.eval_js("(a, b) => a * b")
print(f"乘法结果: {js_func(4, 5)}") # 输出: 乘法结果: 20
对于网页自动化场景,selenium也能执行JS:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
# 在页面上下文中执行JS
result = driver.execute_script("return document.title;")
print(f"页面标题: {result}")
选哪个方案看具体需求:简单计算用execjs,复杂转换用js2py,操作网页用selenium。
一句话建议:根据使用场景选合适的JS执行方案。
提供一个思路,行不行自己判断。
使用 pyqt 库,嵌入一个 webview,使用 web_view.page().runJavaScript() 方法执行 js。
貌似有点绕。。。尴尬~~~~
webview 会用到浏览器吧?我们不想使用浏览器。
webview 并没有调用任何的浏览器。qt 内置了浏览器内核 webkit 所以可以直接请求渲染页面。qt5.6 版本以前是提供 webkit 内核,qt5.6 以后的版本提供 chromium 内核。 使用 pyqt5 去渲染页面还是执行 js 都是可行的。
pyv8 和 js2py 有区别吗?貌似都可以载入 js 环境执行 js 代码吧
为什么不直接调用 node 呢,或者是用 node 写个接口,直接请求。


