|
|
发表于 2020-2-8 13:02:11
|
显示全部楼层
本楼为最佳答案
 - import urllib.request
- import urllib.parse
- import json
- import time
- import random
- import hashlib
- def sign(content, salt):
- client = 'fanyideskweb'
- suffix = 'n%A-rKaT5fb[Gy?;N5@Tj'
-
- generated_sign = hashlib.md5((client + content + salt + suffix).encode('utf-8')).hexdigest()
- return generated_sign
- def version():
- ver = '5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
- build_version = hashlib.md5(ver.encode('utf-8')).hexdigest()
- return build_version
- def build_data(content):
- data = dict()
- data['i'] = content
- data['from'] = 'AUTO'
- data['to'] = 'AUTO'
- data['smartresult'] = 'dict'
- data['client'] = 'fanyideskweb'
- data['salt'] = str(int(time.time()*1000) + random.randint(1,10))
- data['sign'] = sign(content, data['salt'])
- data['ts'] = str(int(time.time()*1000))
- data['bv'] = version()
- data['doctype'] = 'json'
- data['version'] = '2.1'
- data['keyfrom'] = 'fanyi.web'
- data['action'] = 'FY_BY_CLICKBUTTION'
- return data
- content = '贵在坚持, 持之以恒'
- url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com"
- data = build_data(content)
- data = urllib.parse.urlencode(data).encode('utf-8')
- req = urllib.request.Request(url, data)
- req.add_header('Referer', 'http://fanyi.youdao.com')
- req.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36')
- response = urllib.request.urlopen(req)
- html = response.read().decode('utf-8')
- target = json.loads(html)
- print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))
复制代码 |
|