盘点3个可以操作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))#调用编译好的函数并且赋值
也可以通过获取引擎来运行我们的语句,如下:
print(execjs.get().eval(1+1))2.查看解释引擎
print(execjs.get().name)
这里JavaScript的解释引擎是JScript,我们还可以使用自己指定给力的引擎,比如“Nodejs”。
3.指定引擎
import execjs import os os.environ["EXECJS_RUNTIME"] = "Node" print(execjs.get().name)
也可以手动指定引擎,如下:
js1=execjs.get(execjs.runtime_names.JScript) print(js1.eval(1)) js2=execjs.get(execjs.runtime_names.Node) print(js2.eval(2))
二、Js2Py
这个我觉得算是比较好的了,可以说是一个综合体,它不需要依赖别的环境,可以独立运行Js文件,只不过它的运行速度可能会稍微慢一点而已,但是网站模板这都不叫事。下面我们来看看它有哪些神器的功能吧。
1.常规操作,必须的

2.循环遍历
import js2py aa=js2py.eval_js( var i=0; for(var c=1;c<6;c++){ console.log(c); } ) print(aa)
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))
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(reval\(,return(,js[0]) html="function getLego2WPK(){" + js1 + "};" ctx = execjs.compile(html) temp = ctx.call(getLego2WPK) print(temp)
三、PyV8
基于Google的V8引擎打造,遗憾的是目前只支持Python2版本,而且已不再维护,建议Python2的小伙伴可以去试试。
四、总结
本文主要盘点了3个可以操作JavaScript的Python库,分别是PyExecJS、Js2Py和PyV8,只要我们用好了这些模块以后玩爬虫就能更加技高一筹,并且准确率更高了。

相关文章
- 摘要:作为华为公司旗下的一款中档手机,华为畅享六以其出色的性能和卓越的用户体验深受消费者喜爱。本文将从不同方面介绍华为畅享六的特点和优势。外观设计:时尚与舒适的完美结合...2025-11-05
你是否头疼于,每天做不完的需求和改不完的bug?你是否发愁,每天撸业务代码,是否能获得技术成长?而追求成就感的你是否想过,你所编写的一行行代码,是在反复的变化中迅速成为遗留代码,还是助公司插上腾飞的翅2025-11-05
如今,能帮助开发人员设计API的工具、技术和平台可谓种类繁多。尽管资源丰富,但API设计中仍然存在着一大难题:如何为API命名。这事听起来简单,但命名本身也需要一整套可持续且稳定可靠的设计流程,用以定2025-11-05
为什么有些人宁愿花费很多时间去自己手工配置Python环境, 也不用Anaconda?
也有很多人是自己配置Python环境,而不用Anaconda,我理解有两方面原因。首先Anaconda对数据科学很友好,但对于其他Python应用场景并不是最佳选择,更多人会使用原生python+pi2025-11-05- 摘要:在当前科技迅猛发展的时代,电脑已经成为我们日常生活中不可或缺的工具之一。无论是工作、娱乐还是学习,我们都需要一个强大而稳定的电脑来满足我们的需求。而其中最关键的组件就是处理器。今天...2025-11-05
【.com快译】如果让你列出过去十年出现的重要编程语言,几乎可以肯定Go和Rust榜上有名。同样,如果让你坐下来想想如今哪种编程语言最适合开发对微服务友好且安全的框架或应用程序,你可能发觉在Go和Ru2025-11-05


最新评论