import base64
import time
from Crypto.Cipher import AES
import requests
import hashlib
class YouDao(object):
def __init__(self):
self.time_str = str(int(time.time() * 1000))
self.headers = {
"Origin": "https://fanyi.youdao.com",
"Referer": "https://fanyi.youdao.com/",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61",
'Host': 'dict.youdao.com',
'cookie': 'OUTFOX_SEARCH_USER_ID=-2034389685@10.110.96.157; OUTFOX_SEARCH_USER_ID_NCOO=1994625046.2245197',
}
# sign值加密
def sign(self):
str_md5 = f'client=fanyideskweb&mysticTime={self.time_str}&product=webfanyi&key=fsdsogkndfokasodnaso'
sign = hashlib.md5(str_md5.encode("utf-8")).hexdigest()
return sign
# 返回值解密
def result(self, text):
# 偏移量
decodeiv = "ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4"
# 秘钥
decodekey = "ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl"
# 先把密匙和偏移量进行md5加密 digest()是返回二进制的值
key = hashlib.md5(decodekey.encode(encoding='utf-8')).digest()
iv = hashlib.md5(decodeiv.encode(encoding='utf-8')).digest()
# AES解密 CBC模式解密
aes_en = AES.new(key, AES.MODE_CBC, iv)
# 将已经加密的数据放进该方法
data_new = base64.urlsafe_b64decode(text)
# 参数准备完毕后,进行解密
result = aes_en.decrypt(data_new).decode('utf-8')
return result
def webtrans_late(self, text):
data = {
"i": text,
"from": 'en',
"to": 'zh-CHS',
"domain": "0",
"dictResult": "true",
"keyid": "webfanyi",
"sign": self.sign(),
"client": "fanyideskweb",
"product": "webfanyi",
"appVersion": "1.0.0",
"vendor": "web",
"pointParam": "client,mysticTime,product",
"mysticTime": self.time_str,
"keyfrom": "fanyi.web",
"mid": "1",
"screen": "1",
"model": "1",
"network": "wifi",
"abtest": "0",
"yduuid": "abcdefg"
}
url = "https://dict.youdao.com/webtranslate"
response = requests.post(url, headers=self.headers, data=data)
result = self.result(response.text)
print(result)
return result
if __name__ == '__main__':
YouDao().webtrans_late('people')
某到翻译(音译汉)
最新推荐文章于 2025-05-16 14:49:58 发布