本篇文章为大家展示了怎么在python中执行js代码,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
什么是js代码混淆吗?
我们现在看一段js代码,代码逻辑很简单,就是拼接时间返回。
function formatDate(现在),{ ,,,var 你=,new 日期(1230999938); ,,,var 年=now.getFullYear (); ,,,var 月=now.getMonth () + 1; ,,,var 日期=now.getDate (); ,,,var 小时=now.getHours (); ,,,var 分钟=now.getMinutes (); ,,,var 第二=now.getSeconds (); ,,,return 年+“产生绯闻;+月+“产生绯闻;+日期+“,“+小时+“:“+分钟+“:“+第二; }
,,,,运行一下这段代码,如下图所示。
混淆代码
我随便找了个在线的js代码混淆网站。
js代码
function formatDate (mz1) {var KkkGDiH2=new 窗口(“\ x44 \ x61 \ x74 \ x65"] (1230999938); var tsk3=KkkGDiH2 [& # 39; \ x67 \ x65 \ x74 \ x46 \ x75 \ x6c \ x6c \ x59 \ x65 \ x61 \ x72& # 39;] (); var YMreyP4=KkkGDiH2 [& # 39; \ x67 \ x65 \ x74 \ x4d \ x6f \ x6e \ x74 \ x68& # 39;] () + 1; var Ozo5=KkkGDiH2 [& # 39; \ x67 \ x65 \ x74 \ x44 \ x61 \ x74 \ x65 # 39;] (); var QMYEc $ eD6=KkkGDiH2 [& # 39; \ x67 \ x65 \ x74 \ x48 \ x6f \ x75 \ x72 \ x73& # 39;] (); var JfXVV_Akq7=KkkGDiH2 [& # 39; \ x67 \ x65 \ x74 \ x4d \ x69 \ x6e \ x75 \ x74 \ x65 \ x73& # 39;] (); var $ mP8=KkkGDiH2 [& # 39; \ x67 \ x65 \ x74 \ x53 \ x65 \ x63 \ x6f \ x6e \ x64 \ x73& # 39;] (); return tsk3 +“\ x2d" + YMreyP4 +“\ x2d" + Ozo5 +“,“+ QMYEc eD6美元+“\ x3a" + JfXVV_Akq7 +“\ x3a" + $ mP8
,,,,上面这个真的不是我瞎写的,混淆之后就是这样子的,不信看图片。
可能我们会有个疑问,js代码都成这玩意了,还能执行吗?答案是肯定的。即使js代码非常乱,但还是可以执行的,结果跟上面的是一样的。
这就造成了一个问题,我们在做爬虫时,如果需要,多多少少可能都要研究一下js代码,然后进行js解密一下,但是,但是,要是代码都混淆成了这了,还怎么解?
一点逻辑都看不通了,基本上不可用Python按照js逻辑重写出来了…
很巧,小编也是卡在这里……后来我就想,要的是Python能执行js代码就好了,不用管函数里面的逻辑了,只拿函数返回值就好了。
Python第三方包Execjs
可能是吧,不止我一个人遇到了这种情况,所以大佬们就开发出来这种工具包,用于执行js代码。
安装
在安装之前,需要有节点环境,这里就不举栗子了,下一步下一步就好了。
pip3 install PyExecJS
执行js
注:由于上述js代码会生成窗口对象,并不能直接执行成功,需要额外的其他辅助,这里简单的举一下其他例子。
正常js代码
function 添加(x, y), { ,,return x  +, y; }
Python执行js代码
import execjs 时间=ctx execjs.compile (“““ function 添加(x, y), { return 才能;x  +, y; } “““) 打印(ctx.call (“add",, 1,, 2))
执行结果如下图所示:
混淆js代码
function 添加(bi1, Pl $ 2) {return bi1 + Pl $ 2}
python执行混淆js代码
import execjs 时间=ctx execjs.compile (“““ function 添加(bi1 Pl 2美元){return bi1 + Pl $ 2} “““) 打印(ctx.call (“add",, 1,, 2))
执行结果如下图所示:
上述内容就是怎么在python中执行js代码,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
python的五大特点是什么
python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。