中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中執行js代碼

發布時間:2021-05-13 16:10:08 來源:億速云 閱讀:398 作者:Leah 欄目:開發技術

本篇文章為大家展示了怎么在python中執行js代碼,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

什么是js代碼混淆?

我們現在看一段js代碼,代碼邏輯很簡單,就是拼接時間返回。

function formatDate(now) {
    var now = new Date(1230999938);
    var year=now.getFullYear();
    var month=now.getMonth()+1;
    var date=now.getDate();
    var hour=now.getHours();
    var minute=now.getMinutes();
    var second=now.getSeconds();
    return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
}

    運行一下這段代碼,如下圖所示。

怎么在python中執行js代碼

混淆代碼

我隨便找了個在線的js代碼混淆網站。

js代碼

function formatDate(mz1){var KkkGDiH2=new window["\x44\x61\x74\x65"](1230999938);var tsk3=KkkGDiH2['\x67\x65\x74\x46\x75\x6c\x6c\x59\x65\x61\x72']();var YMreyP4=KkkGDiH2['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1;var Ozo5=KkkGDiH2['\x67\x65\x74\x44\x61\x74\x65']();var QMYEc$eD6=KkkGDiH2['\x67\x65\x74\x48\x6f\x75\x72\x73']();var JfXVV_Akq7=KkkGDiH2['\x67\x65\x74\x4d\x69\x6e\x75\x74\x65\x73']();var $mP8=KkkGDiH2['\x67\x65\x74\x53\x65\x63\x6f\x6e\x64\x73']();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代碼。

安裝

在安裝之前,需要有node環境,這里就不舉栗子了,下一步下一步就好了。

pip3 install PyExecJS

執行js

注:由于上述js代碼會生成window對象,并不能直接執行成功,需要額外的其他輔助,這里簡單的舉一下其他例子。

正常js代碼

function add(x, y) {
   return x + y;
}

Python執行js代碼

import execjs

ctx = execjs.compile("""
function add(x, y) {
  return x + y;
}
""")
print(ctx.call("add", 1, 2))

執行結果如下圖所示:

怎么在python中執行js代碼

混淆js代碼

function add(bi1,Pl$2){return bi1+Pl$2}

Python執行混淆js代碼

import execjs

ctx = execjs.compile("""
function add(bi1,Pl$2){return bi1+Pl$2}
""")
print(ctx.call("add", 1, 2))

執行結果如下圖所示:

怎么在python中執行js代碼

上述內容就是怎么在python中執行js代碼,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

python的五大特點是什么

python的五大特點:1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。3.可移植性,Python程序無需修改就可以在各種平臺上運行。4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲沃县| 昌吉市| 昌宁县| 运城市| 杭锦旗| 五峰| 得荣县| 伊川县| 盱眙县| 中西区| 邹平县| 雷波县| 射阳县| 吴江市| 广丰县| 汝城县| 田阳县| 甘泉县| 黄陵县| 页游| 彭阳县| 博野县| 达拉特旗| 东宁县| 新巴尔虎右旗| 五峰| 始兴县| 即墨市| 永年县| 尉犁县| 宜黄县| 沁源县| 封开县| 武邑县| 宝鸡市| 汤原县| 远安县| 乌拉特前旗| 手游| 贵溪市| 临桂县|