温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

可以操作JavaScript的Python库有哪些

发布时间:2021-09-30 10:37:47 来源:亿速云 阅读:164 作者:柒染 栏目:web开发

这篇文章给大家介绍可以操作JavaScript的Python库有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

前言

我们都知道Python可以很轻松的实现某些功能,而且还可以编写网页,比如Remi,Pysimplegui,但是操作JavaScript这种浏览器的脚本语言,还是第一次听说,小编也是第一次听说,于是就跟大家脑补这一知识。

一、PyExecJS

是一个可以执行JavaScript脚本的Python模块,可以与网页上的JavaScript进行交互,这样就能更加精准的获取到网页中的加密内容,如果用Python中的网络模块进行请求,会无法解密文档中的加密内容,这个时候使用我们的PyExecJS可以很方便到的解密网页中的加密内容,当然这得你会Js逆向才可以。不过要想PyExecJS解析JS语句没毛病,还得整个Js语言解析环境,这里推荐NodeJS,尴尬。我们来看下PyExecJs的用法:

1.常规操作

import execjs aa=execjs.eval("'one|two|three'.split('|')") #执行JavaScript代码,将字符串分割形成数组 print(aa)   e=execjs.compile('''     #编译一个表达式 function add(x,y){   return x+y; } ''') print(e.call('add',10,20))#调用编译好的函数并且赋值

可以操作JavaScript的Python库有哪些

也可以通过获取引擎来运行我们的语句,如下:

print(execjs.get().eval('1+1'))

2.查看解释引擎

print(execjs.get().name)

可以操作JavaScript的Python库有哪些

这里JavaScript的解释引擎是JScript,我们还可以使用自己指定给力的引擎,比如“Nodejs”。

3.指定引擎

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

可以操作JavaScript的Python库有哪些

也可以手动指定引擎,如下:

js1=execjs.get(execjs.runtime_names.JScript) print(js1.eval('1'))  js2=execjs.get(execjs.runtime_names.Node) print(js2.eval('2'))

可以操作JavaScript的Python库有哪些

二、Js2Py

这个我觉得算是比较好的了,可以说是一个综合体,它不需要依赖别的环境,可以独立运行Js文件,只不过它的运行速度可能会稍微慢一点而已,但是这都不叫事。下面我们来看看它有哪些神器的功能吧。

1.常规操作,必须的

可以操作JavaScript的Python库有哪些

2.循环遍历

import js2py aa=js2py.eval_js( ''' var i=0; for(var c=1;c<6;c++){ console.log(c); }  ''' ) print(aa)

可以操作JavaScript的Python库有哪些

3.读取Js文件

我们可以把JS文件写入文件中,以便我们进行调用,如下:

1.js

function f(aa){     if(aa>11){         console.log('OK')      }else{         console.log('Fail')   } }

Python文件

import  js2py with open('1.js','r') as f:     aa=js2py.eval_js(f.read())     print(aa(11))

可以操作JavaScript的Python库有哪些

4.爬取网站数据

这里我们以淘宝为主,我想整它的JS脚本文件,如下:

import execjs import requests import re url = 'https://ai.taobao.com/?pid=mm_26632323_6762370_25910879' res=requests.get(url).text js=re.findall(r'<script>(.*?)</script>',res) print(js,'\n') js1=re.sub(r'eval\(','return(',js[0]) html="function getLego2WPK(){" + js1 + "};" ctx = execjs.compile(html) temp = ctx.call('getLego2WPK') print(temp)

可以操作JavaScript的Python库有哪些

三、PyV8

基于Google的V8引擎打造,遗憾的是目前只支持Python2版本,而且已不再维护,建议Python2的小伙伴可以去试试。

关于可以操作JavaScript的Python库有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI