怎么在python中执行js代码

  介绍

本篇文章为大家展示了怎么在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 年+“产生绯闻;+月+“产生绯闻;+日期+“,“+小时+“:“+分钟+“:“+第二;   }

,,,,运行一下这段代码,如下图所示。

怎么在python中执行js代码

混淆代码

我随便找了个在线的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

,,,,上面这个真的不是我瞎写的,混淆之后就是这样子的,不信看图片。

怎么在python中执行js代码

可能我们会有个疑问,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))

执行结果如下图所示:

怎么在python中执行js代码

混淆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中执行js代码,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

python的五大特点是什么

python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。

怎么在python中执行js代码