哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

什么是js代碼混淆

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-31 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么要引出Python執(zhí)行js這個問題?

都說術業(yè)有專攻,每個語言也都有自己的長處和短處。在爬蟲方向,Python絕對是扛把子,近幾年隨著AI的火爆,需要各種各樣的數(shù)據(jù),所以,爬蟲需求也跟著水漲船高起來。

做爬蟲的當然是爬的爽,但是估計人家后臺在罵街,畢竟誰都不希望自己的數(shù)據(jù)被弄走,所以后臺反爬技術也在快速提升,一攻一防就這么在拉鋸著。

現(xiàn)在為了防止反爬,前端使用的反爬技術比較多的是js代碼混淆。

什么是js代碼混淆?

正常代碼

我們現(xiàn)在看一段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;
}

混淆代碼

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

可能我們會有個疑問,js代碼都成這玩意了,還能執(zhí)行嗎? 答案是肯定的。即使js代碼非常亂,但還是可以執(zhí)行的,結果跟上面的是一樣的。

這就造成了一個問題,我們在做爬蟲時,如果需要,多多少少可能都要研究一下js代碼,然后進行js解密一下,但是,但是,要是代碼都混淆成了這了,還怎么解?

一點邏輯都看不通了,基本上不可用Python按照js邏輯重寫出來了...

后來我就想,要是Python能執(zhí)行js代碼就好了,不用管函數(shù)里面的邏輯了,只拿函數(shù)返回值就好了。

Python第三方包Execjs

安裝

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

pip3 install PyExecJS

Execjs用法超級簡單的,幾行代碼。

執(zhí)行js

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

正常js代碼


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

Python執(zhí)行js代碼


import execjs

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

混淆js代碼

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

Python執(zhí)行混淆js代碼

import execjs

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

即使再混淆,只要執(zhí)行的是js代碼,都是沒啥問題的。

上述拼接時間返回的js混淆代碼也是可以執(zhí)行的,但是它多了一個window對象,需要node安裝jsdom才行,或者使用selenium打開游覽器執(zhí)行再返回也行,當然,速度更慢。
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JS
    JS
    +關注

    關注

    0

    文章

    79

    瀏覽量

    19076
  • 代碼
    +關注

    關注

    30

    文章

    4975

    瀏覽量

    74314
  • python
    +關注

    關注

    58

    文章

    4882

    瀏覽量

    90274
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    安世中國打臉荷蘭安世:混淆視聽、斷供、抹黑

    Tilger以個人名義發(fā)出的致安世中國全體員工信函枉顧事實、試圖混淆視聽,充分反映出荷蘭安世部分管理層推卸責任、置安世中國全體員工切身利益于不顧的態(tài)度。 ? 這封信函將過去兩周安世中國與荷蘭安世的“暗斗”再次推向“明面”,而這場漩渦中牽涉的不僅是
    的頭像 發(fā)表于 11-15 00:14 ?9705次閱讀
    安世中國打臉荷蘭安世:<b class='flag-5'>混淆</b>視聽、斷供、抹黑

    什么是低代碼:低代碼開發(fā)平臺詳解 5個優(yōu)質(zhì)低代碼平臺工具

    模式,適配不同企業(yè)的數(shù)據(jù)隱私需求,部分平臺還能滿足信創(chuàng)全棧適配要求,適配國產(chǎn)芯片、操作系統(tǒng)和數(shù)據(jù)庫。 低代碼開發(fā)平臺與傳統(tǒng)開發(fā)工具的核心區(qū)別 很多人會混淆代碼平臺與傳統(tǒng)開發(fā)工具,其實兩者的核心差異
    發(fā)表于 04-07 16:03

    大模型 ai coding 比較

    可達30,000+ req/s 。 如何復現(xiàn)測試 bash 體驗AI代碼助手 代碼解讀 復制代碼 # 1. 啟動 Mock 上游服務 node bench/mock-upstream.j
    發(fā)表于 02-19 13:43

    極簡代碼,5分鐘上手XXTEA加密解密

    1998年提出,旨在改進其前身TEA和XTEA算法的安全性。 核心特點: 實現(xiàn)簡單、代碼精煉、執(zhí)行效率高,非常適合資源受限的環(huán)境,如嵌入式系統(tǒng)、物聯(lián)網(wǎng)設備或?qū)δ_本、配置文件進行基礎保護。 該算法使用128位
    的頭像 發(fā)表于 01-07 18:08 ?225次閱讀
    極簡<b class='flag-5'>代碼</b>,5分鐘上手XXTEA加密解密

    HarmonyOS應用代碼混淆技術方案

    代碼混淆技術可以增加代碼的復雜性和模糊性,從而提高攻擊者分析代碼的難度。
    的頭像 發(fā)表于 11-21 16:17 ?5699次閱讀
    HarmonyOS應用<b class='flag-5'>代碼</b><b class='flag-5'>混淆</b>技術方案

    虛擬電廠VS傳統(tǒng)電廠VS微電網(wǎng)的差異:3大維度拆解,避免概念混淆

    。不少從業(yè)者將虛擬電廠等同于“數(shù)字化傳統(tǒng)電廠”,或?qū)⑵渑c微電網(wǎng)混為一談,這種概念混淆可能導致技術選型偏差與政策應用錯位。本文從核心屬性、運行邏輯、價值定位三大維度,系統(tǒng)拆解三者差異,厘清各自的應用場景與發(fā)展邊界。
    的頭像 發(fā)表于 11-13 11:48 ?1417次閱讀

    代碼開發(fā)平臺推薦:2025國內(nèi)低代碼開發(fā)平臺排名TOP10

    代碼開發(fā)平臺排行榜 在企業(yè)數(shù)字化轉型的浪潮中,低代碼開發(fā)平臺正逐漸成為企業(yè)實現(xiàn)高效開發(fā)和快速迭代的重要工具。隨著技術的不斷進步和市場需求的持續(xù)增長,低代碼開發(fā)平臺的市場競爭也日益激烈。以下
    的頭像 發(fā)表于 10-28 10:22 ?920次閱讀

    2025主流低代碼平臺有哪些:低代碼開發(fā)平臺選型指南指南

    在企業(yè)數(shù)字化轉型進入深水區(qū)的當下,低代碼開發(fā)平臺已從早期的“效率工具”升級為“核心基建”。其工程化能力、流程適配深度、技術延展性與行業(yè)積淀,直接決定了企業(yè)轉型的成效。據(jù)Gartner預測,到2026
    的頭像 發(fā)表于 10-22 11:49 ?506次閱讀

    外殼防護等級(IP代碼)全解讀

    什么是外殼防護等級(IP代碼)IP代碼,全稱為“國際防護等級”,是由國際電工委員會制定的全球通用標準。這一標準旨在為電子設備外殼的防護能力提供一個清晰、統(tǒng)一的評判體系。簡單來說,IP代碼就是電子設備
    的頭像 發(fā)表于 10-14 12:13 ?1423次閱讀
    外殼防護等級(IP<b class='flag-5'>代碼</b>)全解讀

    ArkGuard混淆工具使用指南

    ArkGuard是一款源碼混淆工具,提供基礎混淆功能。當軟件發(fā)布后,其代碼很容易被他人獲取分析,通過閱讀清晰的變量名、函數(shù)名,攻擊者或競爭者可以非常輕松地理解代碼的邏輯結構、業(yè)務核心算
    的頭像 發(fā)表于 09-28 16:05 ?1024次閱讀
    ArkGuard<b class='flag-5'>混淆</b>工具使用指南

    【匯思博SEEK100開發(fā)板試用體驗】3/第一次使用OpenHarmony

    /pages/index.ets JS項目:entry/src/main/js/pages/index/index.js ??修改核心代碼?? // eTS示例:修改默認文本 @S
    發(fā)表于 08-20 22:21

    絕對值編碼器避坑指南:常見選型誤區(qū)之混淆“分辨率”與“精度”,盲目追求高分辨率

    絕對值編碼器作為精準定位與運動控制的核心部件,其選型直接影響設備的精度、穩(wěn)定性和壽命。但在實際選型中,由于對技術參數(shù)、應用場景和產(chǎn)品特性的理解偏差,很容易陷入誤區(qū)。本文針對絕對值編碼器選型的常見誤區(qū)之一:混淆“分辨率”與“精度”,盲目追求高分辨率,并提供對應的避坑思路,幫助精準選型。
    的頭像 發(fā)表于 08-04 11:24 ?1387次閱讀
    絕對值編碼器避坑指南:常見選型誤區(qū)之<b class='flag-5'>混淆</b>“分辨率”與“精度”,盲目追求高分辨率

    單模光纜型號字母代碼及其含義

    單模光纜的型號字母代碼主要用于標識光纜的分類、結構、護層及光纖類型等關鍵信息,以下是一些常見的單模光纜型號字母代碼及其含義: 一、光纜分類代碼 GY:通信用室外光纜,這是最常見的室外光纜分類
    的頭像 發(fā)表于 07-17 10:27 ?3513次閱讀

    鴻蒙5開發(fā)寶藏案例分享---Web加載時延優(yōu)化解析

    : Network泳道 :查看資源加載時序 Main泳道 :監(jiān)控JS/CSS解析阻塞 Performance面板 :定位長任務(Long Tasks) ??** 四大優(yōu)化方向 + 代碼實戰(zhàn)** 以下
    發(fā)表于 06-12 17:11

    OLED代碼分享

    OLED代碼
    發(fā)表于 04-29 17:04 ?2次下載
    久治县| 阿瓦提县| 安岳县| 固原市| 监利县| 高碑店市| 凭祥市| 疏勒县| 曲沃县| 横峰县| 施甸县| 安塞县| 金山区| 广昌县| 龙川县| 仁化县| 云梦县| 广东省| 博乐市| 石景山区| 蒙城县| 禹州市| 治县。| 岑溪市| 延津县| 邹平县| 丰城市| 于都县| 洪洞县| 阜新| 弥勒县| 天水市| 尖扎县| 云龙县| 巫溪县| 长垣县| 睢宁县| 峨边| 永福县| 高淳县| 安宁市|