js加密一直是困擾資料抓取的難題,但總有辦法,總結下經驗一起學習
請求是通過非同步往伺服器傳送資料
主要有以下引數,一群看不懂的東西不用說肯定是加密資訊
ts:是系統時間戳
salt:時間戳+數字
bv:user-agent的md5加密
sign:一串字元加密
通過分析了解加密方式
就可以用**構造自己加密方式
# -*- coding: utf-8 -*-
import time
import requests
import random, json
from hashlib import md5
import pprint
class
youdao
(object):
def__init__
(self, keyword)
: self.url =
""self.headers =
self.keyword = keyword
self.form_data =
defget_salt
(self)
: salt =
str(time.time()*
1000
)return salt
defget_sign
(self)
: sign =
"fanyideskweb"
+ self.keyword + self.form_data[
'salt']+
"tbh5e8=q6u3exe+&l[4c@"
m = md5(
) m.update(sign.encode(
'utf-8'))
s = m.hexdigest(
)return s
deftranslate
(self)
: response = requests.post(url=self.url, headers= self.headers, data=self.form_data)
dict_result = json.loads(response.content)
print
(dict_result[
'translateresult'][
0][0
]['tgt'])
defstart
(self)
: salt = self.get_salt(
) self.form_data[
'salt'
]= salt
self.form_data[
'lts'
]= salt +
str(random.randint(0,
10)) temp2 =
bv = md5(temp2.encode(
'utf-8'))
.hexdigest(
) self.form_data[
'bv'
]= bv
self.form_data[
'sign'
]= self.get_sign(
) self.translate(
)if __name__ ==
'__main__'
:while
true
: keyword =
input
('請輸入要翻譯的內容, 輸入 need-quit 退出:'
)if keyword ==
'need-quit'
:break
youdao = youdao(keyword)
youdao.start(
)
2020 11 02 JS逆向入門之有道翻譯
二 引數破解 2.引數破解測試 三 salt 13位時間戳 乙個隨機數 sign 加密引數 lts 13位時間戳 bv 瀏覽器版本的加密引數 salt 13位時間戳 乙個隨機數 sign md5 fanyideskweb 翻譯引數 salt bjuetdhu zqsxf b 7m lts 13位時間...
有道翻譯js加密破解
案例說明 有道翻譯請求引數 salt,sign,ts 通過js加密,進行爬蟲請求時首先應對加密的引數進行解密,用到的技術要點有 js2py,hashlib加密,requests傳送請求等。import requests import json import js2py import hashlib ...
Js逆向分析
1 知道如何尋找登入介面 2 知道如何確定js的位置 3 知道如何觀察js的執行過程 4 知道js的執行方法1 知道如何尋找登入介面 2 知道如何確定js的位置 3 知道如何觀察js的執行過程 4 知道js的執行方法a 登入的form表單中action對應的url位址 b 通過抓包分析發現,在這個u...