js逆向解析即通過呼叫對方的js加密函式來獲取正確的加密資料
js逆向解析需要安裝js開發環境node.js和execjs模組
有兩個檔案,乙個py檔案存放主程式,和乙個js檔案存放從瀏覽器中找到的生成js加密資料的js**
兩個檔案需在同乙個資料夾中。
*.py py檔案
import requests # 需安裝
import execjs # pip install pyexecjs 用於執行js**
import jsonpath # 需安裝
# 1、開啟js檔案,使用js**生成js加密資料
with open('sign.js', 'r') as f:
js_sign = f.read()
# 2、編譯
exe_sign = execjs.compile(js_sign)
# 3、呼叫js函式生成加密資料
self.sign = exe_sign.call('e', self.zh)
def fanyi(self, zh):
# 翻譯
self.zh = zh
self.get_sign()
self.formdata['query'] = self.zh
self.formdata['sign'] = self.sign
res = requests.post(self.url, data=self.formdata, headers=self.head)
pydict = res.json()
try:
dst = jsonpath.jsonpath(pydict, '$..text')[0] # 單詞
except:
dst = jsonpath.jsonpath(pydict, '$..dst')[0] # 句子
print(f"英文翻譯為:\n")
if i < n - 1:
y = input(f"你還有次機會,繼續嗎?(y/n)\n")
if y in ['n', 'n']:
break
else:
print("機會已經用完,請重新啟動...")
input("請按任意鍵...")
time.sleep(1.5)
print("\n本次服務到此結束!")
*.js檔案
function n(r, o)
return r
}function e(r) else
u = "320305.131321201";
for (var d = u.split("."), m = number(d[0]) || 0, s = number(d[1]) || 0, s = , c = 0, v = 0; v < r.length; v++)
for (var p = m, f = "" + string.fromcharcode(43) + string.fromcharcode(45) + string.fromcharcode(97) + ("" + string.fromcharcode(94) + string.fromcharcode(43) + string.fromcharcode(54)), d = "" + string.fromcharcode(43) + string.fromcharcode(45) + string.fromcharcode(51) + ("" + string.fromcharcode(94) + string.fromcharcode(43) + string.fromcharcode(98)) + ("" + string.fromcharcode(43) + string.fromcharcode(45) + string.fromcharcode(102)), b = 0; b < s.length; b++)
p += s[b],
p = n(p, f);
return p = n(p, d),
p ^= s,
0 > p && (p = (2147483647 & p) + 2147483648),
p %= 1e6,
p.tostring() + "." + (p ^ m)
}
百度翻譯介面例項解析
本例項採用python3進行編寫 獲取 token 和 gtk 如下 請求頭非常重要,在請求 fanyi.baidu.com 這個頁面的時候需要傳遞 header 獲取網頁原始碼 html requests.get headers header html.encoding utf 8 正則匹配 gt...
尋找百度翻譯引數,實現百度翻譯
author runsen 首先要分析瀏覽器是怎麼傳送請求的。構造請求 找到關鍵請求之後,就要分析請求,然後去構造請求。分析請求有一下幾個要素,url,請求方法,請求頭,請求引數。請求引數有七個,可以通過反覆請求然後比較的方法得出from,to是表示翻譯語言的,transtype,means fla...
access百度翻譯 get 我的百度翻譯
為了便於使用,寫了乙個簡單但夠用的使用者介面,它長這個樣子 在左邊輸入英文按下回車後,右邊就會顯示翻譯結果了。這個東西只是單純的顯示翻譯結果,像音標 發音 中英文對照等功能都沒有,而且編輯不方便 如提供乙個 按鈕來清空 不過,其中的一些是api本身不支援 如文字轉語音 另外的如加音標 方便操作的功能...