两个库搞定python中引用javascript代码块/文件,【阅读全文】在pyt
两个库搞定python中引用javascript代码块/文件,【阅读全文】在pyt
在一些特殊的python应用场景下需要逆向执行javascript代码块或者.js文件,比如:爬虫的时候下载下来的html页面中包含你要逆向执行的js代码块。
【阅读全文】
在python编程中提供了两个非标准库js2py与PyExecJS都能实现在python中运行代码块的效果的。
1、js2py的使用过程
js2py适用于js代码少量情况,如果用于很长的混淆的js代码,转译过来的大概率会报错。
# 使用pip的方式安装: pip install js2py
执行js代码块的方式来运行代码
import js2py # 导入js2py处理库
# 创建javascript代码块的python字符串
js_code = '''
var date = new Date().getTime()
'''
调用 js2py.eval_js函数执行javascript代码块
result = js2py.eval_js(js_code)
print(result)
# 1648984478464
执行js文件的方式来运行代码
# 创建一个javascript文件hello_world.js
#
# function hello_world(name){
# return name;
# }
hello_world = js2py.eval_js(open('./hello_world.js', 'r', encoding='utf-8').read())
print(hello_world("公众号:Python 集中营"))
# 我是 公众号:Python 集中营
2、PyExecJS的使用过程
通过python代码去执行JavaScript代码的库,依赖于javascript运行环境,最好可以装个node.js,相比于js2py,他可以运行多一点的js代码。
使用pip的方式安装: pip install PyExecJS
import execjs # 导入execjs处理库
print(execjs.get().name) # 获取javascript的默认执行环境
# Node.js (V8)
我的windows上面默认的js环境是nodejs,当然是用操作系统默认的js环境也是OK的。
执行一下刚刚上面创建的hello_world.js文件。
# 需要先将即将执行的代码块编译一下
compile_code = execjs.compile(open('./hello_world.js', 'r', encoding='utf-8').read())
# 使用编译后的代码块call函数调用js文件中的hello_world函数
result = compile_code.call('hello_world','python')
print(result)
# python
还可以使用eval函数进行调用
result = compile_code.eval("hello_world('python')")
print(result)
# python
当然,也可以像js2py一样直接执行js代码块的。
result = execjs.eval('""+ new Date().getTime()')
print(result)
# 1648986998002
注意:使用execjs执行javascript代码块时,如果使用中文会出现乱码的情况不能自动转换编码。并且在中/英文混用的时候会出现报错的情况。
【往期精彩】
python实现excel数据与mysql数据库互通有无!
python 实现超快窗口截图,自动获取当前活动窗口并展示截图...
怎么用python做一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了...
python中最简单的turtle绘图:奥运五环!
知识汇总:python办公自动化应该学习哪些内容?
欢迎关注作者公众号【Python 集中营】,专注于后端编程,每天更新技术干货,不定时分享各类资料!相关内容
- python常用标准库(math数学模块和random随机模块),im
- [持续更新] Python学习、使用过程中遇见的非代码层面知
- 【拖拽可视化大屏】全流程讲解用python的pyecharts库实现
- python实现excel数据与mysql数据库互通有无,比如:使用
- 详细剖析pyecharts大屏的Page函数配置文件:chart_config.jso
- django基础02--一个基于数据库的小项目,(Python3.9
- 【Python数据分析案例】python数据分析老番茄B站数据(
- Python批量爬取美女写真集,只需27行代码,实现多页爬
- python数据可视化-matplotlib入门(6)-从文件中加载数据,实
- Python实现批量将文件按分类保存,文件再多,只需一秒
评论关闭