Python如何使用execjs执行包含中文参数的JavaScript
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章给大家分享的是有关Python如何使用execjs执行包含中文参数的JavaScript的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。抓取到了一段包含数据的Java
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
公司需要养着一个软件开发团队吗
数字政府网络安全指数评估重点改进方案
使用网络技术提升教学能力
都昌游戏软件开发
蚌埠软件开发
数据库连接密码
江苏道路管理软件开发
密码学与网络安全中文导读
软件开发为什么要做诊断
数据库收银系统项目
taptap的数据库安全么
软件服务器维护费收费标准
ping lol服务器
传奇数据库群攻代码
计算机网络技术大一用电脑吗
深圳公安网络安全监察科
中国网络安全市场构成
安阳市网络安全教育平台
山西专业软件开发设施有哪些
数据库定期更新
网络安全会画
数据库连接也连接不上
什么网络安全需要看什么书
大内存服务器
西安科技软件开发公司
MySQL服务器被误删了
大连在用什么打车软件开发
java软件开发主要是什么
迁移服务器
网络安全技术应用大赛