這篇文章的主要目的還是破解JS參數(shù)加密,百度翻譯的JS過程并不是很復雜瞎暑,非常適合新手練手彤敛。
首先,打開百度翻譯金顿,隨便輸點詞語臊泌,點擊翻譯鲤桥。
Python學習資料或者需要代碼揍拆、視頻加Python學習群:960410445
不斷點擊翻譯,在network中會一直跳出框框內的內容茶凳。
打開第二個文件v2transapi嫂拴,可以看到我們需要的內容。
現(xiàn)在來分析一下這個文件贮喧,它的請求方式為post筒狠,下圖是它post時所需的data。from是你輸入詞語的類型箱沦,to是需要翻譯成的類型辩恼,query是翻譯的詞語,sign和token是通過js文件生成的谓形;現(xiàn)在來找一找這兩個參數(shù)灶伊。
https://fanyi.bdstatic.com/static/translation/pkg/index_9b62d56.js:formatted是JS文件的鏈接,打斷點調試可以看到寒跳,sign是通過m(‘翻譯’ )生成的聘萨,token是通過?window.common.token生成。
其中window.common.token在頁面的源代碼中有出現(xiàn) ‘04a7c540f2a1e1d6be3dee208d1b7525’童太;第二個框的參數(shù)后面會用到米辐。
在來看m()函數(shù)胸完,它的參數(shù)就是要翻譯的內容,定位到5725-5727行翘贮,這三行是用來生成一個參數(shù)u赊窥,且u的值為window.gtk,也就是上一幅圖第二個框框內的內容狸页;為了使代碼更加靈活誓琼,在構造js函數(shù)的時候,將參數(shù)u從定值轉為m()函數(shù)的參數(shù)肴捉,這一部分進行調整腹侣。
調整后的JS代碼如下:
至此整個流程就分析完了,下面來構造自己的翻譯器把齿穗。順便一說傲隶,百度翻譯可以實現(xiàn)88種語言的互轉噢。
效果圖如下: