大家好呀,由于疫情好久沒更新文章啦!今天難得有空更新一個有意思的實戰(zhàn)項目。
我是xu ,我一直在路上窝爪。
你將學(xué)到 JS 解密 + tornado 框架寫get+ post 請求基礎(chǔ)知識+python文件打包成exe 可執(zhí)行文件。本章干貨滿滿齐媒。
前幾章已經(jīng)講過python2 JS 解密過程蒲每,今天講python3 構(gòu)造js解密,并且今天再來利用爬蟲和tornado 框架打造實時翻譯程序喻括。
既然是 實時翻譯 那我們先安排網(wǎng)易在線翻譯邀杏,看能不能做到爬蟲實時翻譯,第一步我們先嘗試寫 網(wǎng)易翻譯爬蟲程序唬血。網(wǎng)址:http://fanyi.youdao.com/
第一步我們在翻譯框輸入任意字符如:"我愛中國"望蜡,F(xiàn)12后點擊Network 在 XHR 菜單欄點擊找http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 來我們看看都有什么參數(shù)提交,通過多次嘗試 發(fā)現(xiàn)下圖代表 要翻譯的內(nèi)容拷恨,salt脖律、sign、ts腕侄、bv 等4個參數(shù)是必要參數(shù)那么這4個參數(shù)都怎么形成的呢小泉,如果想做到實時翻譯那么這4個字段 就要給他安排的明明白白,最直觀的就是全局搜索冕杠,加斷點調(diào)試微姊,我們先搜索一下試試水,
通過搜索 'sign' 我們發(fā)現(xiàn) 下圖 JS 加密部分分预,對比發(fā)現(xiàn)我們可以看到 salt兢交、sign、ts噪舀、bv 這四個參數(shù)的加密方式魁淳,觀察發(fā)現(xiàn) ts 是當(dāng)前時間戳、salt 是 ts+隨機一位數(shù)字与倡、bv 是md5 當(dāng)前瀏覽器標識后的加密值、sign 是 'fanyideskweb' +'要翻譯的內(nèi)容'+ salt +'Nw(nmmbP%A-r6U3EUn]Aj' 這個字符串MD5之后的值昆稿、將到這里就特別簡單了纺座,我們有多種方式 構(gòu)造這些參數(shù),
第一種 :我們用python 自己生成這些參數(shù)
1溉潭、構(gòu)造參數(shù)ts
ts = str(time.time()).replace('.', '')[0:13]
2净响、構(gòu)造參數(shù)salt
salt = ts + str(random.randint(0, 10))
3少欺、構(gòu)造參數(shù)bv
bv = hashlib.md5('{}'.format( '你的瀏覽器標識').encode(encoding='UTF-8')).hexdigest()
4、構(gòu)造參數(shù) sign
sing = hashlib.md5(
'{}'.format("fanyideskweb" + str(word) + salt + "Nw(nmmbP%A-r6U3EUn]Aj").encode(encoding='UTF-8')).hexdigest()
好了構(gòu)造完成我們啟動程序 試試效果:
哈哈哈非常簡單的翻譯程序就這樣寫好了馋贤,那么這樣的程序我們適用不方便啊赞别,借助tornado 異步框架在我本地訪問 http://localhost:33863/index 然后輸入想翻譯的內(nèi)容我們打造可視化在線翻譯程序先上效果圖:
python文件 打包成exe 文件非常簡
首先安裝Pyinstaller
pip install Pyinstaller
第二步:
win +R 輸入 CMD
然后進到 python 文件 所在目錄
執(zhí)行 Pyinstaller -F xxx.py
然后py文件同級目錄下 會出現(xiàn) 如下文件夾,打卡即可看到 exe可執(zhí)行文件配乓。
由于涉及到網(wǎng)易在線翻譯網(wǎng)站仿滔、安全問題代碼就不全部貼出來了,如果想要完整代碼或者想要exe 可執(zhí)行翻譯程序的評論區(qū)留下郵箱犹芹。