我们都知道Python可以很轻松的实现某些功能,而且还可以编写网页,比如Remi,Pysimplegui,但是操作JavaScript这种浏览器的脚本语言,还是第一次听说,小编也是第一次听说,于是就跟大家脑补这一知识。
站在用户的角度思考问题,与客户深入沟通,找到蛟河网站设计与蛟河网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、网站空间、企业邮箱。业务覆盖蛟河地区。
是一个可以执行JavaScript脚本的Python模块,可以与网页上的JavaScript进行交互,这样就能更加精准的获取到网页中的加密内容,如果用Python中的网络模块进行请求,会无法解密文档中的加密内容,这个时候使用我们的PyExecJS可以很方便到的解密网页中的加密内容,当然这得你会Js逆向才可以。不过要想PyExecJS解析JS语句没毛病,还得整个Js语言解析环境,这里推荐NodeJS,尴尬。我们来看下PyExecJs的用法:
- 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'))
- print(execjs.get().name)
这里JavaScript的解释引擎是JScript,我们还可以使用自己指定给力的引擎,比如“Nodejs”。
- 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'))
这个我觉得算是比较好的了,可以说是一个综合体,它不需要依赖别的环境,可以独立运行Js文件,只不过它的运行速度可能会稍微慢一点而已,但是这都不叫事。下面我们来看看它有哪些神器的功能吧。
- import js2py
- aa=js2py.eval_js(
- '''
- var i=0;
- for(var c=1;c<6;c++){
- console.log(c);
- }
- '''
- )
- print(aa)
我们可以把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))
这里我们以淘宝为主,我想整它的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'',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)
基于Google的V8引擎打造,遗憾的是目前只支持Python2版本,而且已不再维护,建议Python2的小伙伴可以去试试。
本文主要盘点了3个可以操作JavaScript的Python库,分别是PyExecJS、Js2Py和PyV8,只要我们用好了这些模块以后玩爬虫就能更加技高一筹,并且准确率更高了。
分享文章:盘点3个可以操作JavaScript的Python库
本文地址:http://www.shufengxianlan.com/qtweb/news29/1829.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联