python 中 execjs 报错

JS 在 网页中可以执行并且有返回值
但在在python 中 报错

img

上面是 网页中 一切都是正常的

下面是 python 报错

img

这个问题好

就一点代码也报错吗

在Python中使用execjs库执行JavaScript代码时报错。execjs库是一个用于在Python中执行JavaScript代码的库。在网页中,JavaScript可以在网页中执行并且有返回值,但是在Python中执行时却报错。

这个错误可能是由于多种原因导致的,比如execjs库的版本不兼容、JavaScript代码中使用了Python中不支持的语法或函数等。要解决这个问题,可以尝试以下几种方法:

  1. 确保execjs库的版本与Python版本兼容。可以尝试升级或降级execjs库来解决版本兼容性问题。

  2. 检查JavaScript代码中是否使用了Python中不支持的语法或函数。如果有,可以尝试修改代码或使用其他方法来实现相同的功能。

  3. 尝试使用其他类似的库或工具来执行JavaScript代码。除了execjs库,还有其他一些库可以在Python中执行JavaScript代码,例如PyExecJS、PyV8等。

  4. 如果以上方法都无法解决问题,可以尝试使用其他语言或工具来执行JavaScript代码,例如使用Node.js来执行JavaScript代码,然后通过Python与Node.js进行通信。

总之,解决这个问题需要具体情况具体分析,根据具体报错信息和使用情况来选择合适的解决方法。


#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""

import execjs

if __name__ == '__main__':
    f = ''' function L(ex){
        var e={
          "platform":"pc",
          "version":"5.10.8",
          "ua":"Chrome 94",
          "ex":ex,
        }
        return e;
      }'''
    ctx = execjs.compile(f)
    print(ctx.call('L', 321))

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7700717
  • 你也可以参考下这篇文章:python 中execjs模块
  • 除此之外, 这篇博客: Python调用js的方式中的 一、execjs 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 依赖:execjs会自动使用当前电脑上的运行时环境(建议用nodejs)
    • 安装:pip install PyExecJS
    • 导包:import execjs
    • 调用方式1: execjs.compile(js代码).call(函数名参数1参数2) ,此种方式建议js代码存到文件中
      import execjs
      
      with open(r"./demo.js", encoding="utf-8") as f:
          ctx = execjs.compile(f.read())
          print(ctx.call('get_m', 5, 6))  # 11
      
    • 调用方式2:execjs.eval(js代码)
      import execjs
      
      print(execjs.eval("cookie='Hm_lvt_444ece9ccd5b847838a56c93a0975a8b=1636208098'"))
      
  • 以下回答来自chatgpt:

    针对该问题,我需要进一步了解报错的具体信息和背景,以确定可能存在的问题和解决方案。常见的解决方法包括升级execjs或更换相应的运行环境,但具体解决方案需要进一步了解问题的背景和环境。请提供更多相关信息,例如报错信息的完整内容、运行环境的具体配置等,以便我们更好地理解问题并为您提供更精准的解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^