# !user/bin/env python3
# -*-coding: utf-8 -*-
__author__ = '闻名'
import execjs
import time
import random
import requests
def get_ts_salt():
ts = int(time.time() * 1000)
salt = int(str(ts) + str(random.randrange(0, 10)))
return ts, salt
def get_bv_sign(word, salt):
ua = '5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'
with open('index.js') as f:
js_data = f.read()
ctx = execjs.compile(js_data)
bv = ctx.call('md5', ua)
str_md5 = 'fanyideskweb' + word + str(salt) + 'n%A-rKaT5fb[Gy?;N5@Tj'
sign = ctx.call('md5', str_md5)
return bv, sign
if __name__ == '__main__':
session = requests.session()
word = '猛男降临到我身边'
ts, salt = get_ts_salt()
bv, sign = get_bv_sign(word, salt)
# print(ts, salt, bv, sign)
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
headers = {
'Referer': 'http://fanyi.youdao.com/',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36',
}
data = {
'i': word,
'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_CLICKBUTTION',
}
res = session.post(url=url, data=data, headers=headers)
print(word, res.json()['translateResult'][0][0]['tgt'])
模拟有道翻译
最新推荐文章于 2021-12-27 14:02:04 发布