- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
盘点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=pile( #编译一个表达式
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;c6;c++){
console.log(c);
}
)
print(aa)
3.读取Js文件
我们可以把JS文件写入文件中,以便我们进行调用,如下:
1.js
function f(aa){
if(aa11){
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 = /?pid=mm6762370res=requests.get(url).text
js=re.findall(r,res)
print(js,\n)
js1=re.sub(reval\(,return(,js[0])
html=function getLego2WPK(){ + js1 + };
ctx = pile(html)
temp = ctx.call(getLego2WPK)
print(temp)
三、PyV8
基于Google的V8引擎打造,圆满的是目前只支持Python2版本,而且已不再维护,建议Python2的小伙伴可以去试试。
四、总结
本文次要盘点了3个可以操作JavaScript的Python库,分别是PyExecJS、Js2Py和PyV8,只需我们用好了这些模块以后玩爬虫就能愈加技高一筹,并且精确?????率更高了。
-----------
原创力文档


文档评论(0)