這次抓的是有道翻譯:http://fanyi.youdao.com/
思路基本來自http://www.reibang.com/p/ff3cd93f79b0
剛看到這篇文章,經(jīng)過測試,部分參數(shù)新增和修改了,新增了瀏覽器版本號的加密參數(shù),其他的sign參數(shù)加密過程所用的常量也發(fā)生改變,目測應該是經(jīng)常改變的,所以如果不能用請重新破解一次,破解過程可以看上面那個鏈接
代碼如下
import requests,hashlib,time,random
def md5(data):
tmp="5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0"
return hashlib.md5(data.encode('utf-8')).hexdigest()
headers = {
'Content-Length': '200',
'Cookie': 'OUTFOX_SEARCH_USER_ID=-1477876726@10.169.0.83; JSESSIONID=aaaX8XQAQLYpv-9TJAgix; OUTFOX_SEARCH_USER_ID_NCOO=1670271260.8903744; ___rl__test__cookies=1589245599445',
'Host': 'fanyi.youdao.com',
'Origin': 'http//fanyi.youdao.com',
'Referer': 'http//fanyi.youdao.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0'}
def 有道翻譯(e):
# e="聲音"
ts=str(int(time.time()*1000))
salt=ts + str(random.randint(1, 10))
bv=md5(headers['User-Agent'])
#這個簽名后面的字母經(jīng)常變,如果不行重新抓取看看更改的;Nw(nmmbP%A-r6U3EUn]Aj
sign=md5("fanyideskweb" + e + salt + "Nw(nmmbP%A-r6U3EUn]Aj")
data = {'i': e,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': salt,
'sign': sign,
'ts': ts,
'bv': bv,
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME'
}
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
res = requests.post(url, headers=headers, data=data)
return res.json()