千家信息网

Python如何使用execjs执行包含中文参数的JavaScript

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章给大家分享的是有关Python如何使用execjs执行包含中文参数的JavaScript的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。抓取到了一段包含数据的Java
千家信息网最后更新 2024年11月18日Python如何使用execjs执行包含中文参数的JavaScript

这篇文章给大家分享的是有关Python如何使用execjs执行包含中文参数的JavaScript的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

抓取到了一段包含数据的JavaScript代码:

import reimport requestsheaders = {    "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",}res = requests.get(    "https://www.kuaikanmanhua.com/web/comic/100868/",    headers=headers)script = re.findall(    "", res.text)[0].replace('\\u002F', "/")script

结果:

这段代码直接在游览器执行可以得到对应的JSON数据,那么我们如何使用python执行这段代码获取JS数据呢?答案是使用execjs

安装:

pip install PyExecJS

但是如果此时在安装过Nodejs的windows上直接执行代码:

import execjsexecjs.eval(script)

会报出如下错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 447: illegal multibyte sequence

此时我们需要重新指定execjs的环境为JScript:

import osos.environ["EXECJS_RUNTIME"] = "JScript"

再次执行可以顺利得到结果。

如果我们确实需要使用本地nodejs的环境执行JavaScript则需要修改修改execjs的源码:

import osos.environ["EXECJS_RUNTIME"] = "Node"print(execjs.get().name)

Node.js (V8)

找到execjs安装目录下的_external_runtime.py文件:

重启程序再次执行即可得到结果:

execjs的调用函数或读取变量示例:

import execjsctx = execjs.compile("""       function add(x, y) {               return x + y;       }       v = add(3, 4);""")print(ctx.call("add", 1, 2), ctx.eval("v"))

3 7

Lib\site-packages\execjs\runtime_names.py文件可以看到execjs所支持的JavaScript环境:

PyV8           = "PyV8"Node           = "Node"JavaScriptCore = "JavaScriptCore"SpiderMonkey   = "SpiderMonkey"JScript        = "JScript"PhantomJS      = "PhantomJS"SlimerJS       = "SlimerJS"Nashorn        = "Nashorn"

感谢各位的阅读!关于"Python如何使用execjs执行包含中文参数的JavaScript"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

代码 数据 环境 结果 参数 中文 内容 再次 文件 更多 篇文章 不错 实用 函数 变量 文章 源码 目录 看吧 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 凯特网络技术 建地理信息数据库用矩形分幅吗 税务网络安全检查工作方案 连接云服务器的原理 网络安全等级保护多钱 软件开发中现场开发什么意思 数据库中元组变量 数据库中Errx是什么意思 通过日志恢复数据库 北京数据网络技术咨询市场报价 衡水实名认证总是服务器异常 电脑远程服务器不可用 网络安全教育记录内容包括 仓库和注册服务器有什么关系 存储服务器外接硬盘 中宏经济数据库热点专家 产业互联网科技有限公司 深圳千丁互联网科技 web服务器管理界面 学习数据库技术与应用心得 网安网络安全意识形态评估细则 性能稳定的零信任网络安全 使用文件导入数据库 软件开发合同没有首付款怎么办 中国广电网络技术 广东数字化城管软件开发公司 8开网络安全手抄报 比亚迪软件开发是做什么的 matlab 数据库连接 抚顺会员报单软件开发
0