|
|
发表于 2017-7-31 18:38:54
|
显示全部楼层
- import urllib.request
- import urllib.parse
- import json
- import time
- import hashlib
- while True:
- #sign登录准备阶段 获取content--------------------------------------
- content = input("请输入要翻译的内容,0退出:")
- if content == '0':
- break
-
- #sign登录准备阶段 获取url------------------------------------------
- url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=dict2.top'
- #sign登录准备阶段 获取client---------------------------------------
- client = 'fanyideskweb'
- #sign登录准备阶段 获取salt-----------------------------------------
- salt = str(int(time.time()*1000))
- #sign登录准备阶段 获取mkey-----------------------------------------
- mkey = "rY0D^0'nM0}g5Mm1z%1G4"
- #制作sign信息-------------------------------------------------------
- sign = hashlib.md5()
- sign.update((client + content + salt + mkey).encode('utf-8'))
-
- #data表单填写-------------------------------------------------------
- data = {}
- data['i'] = content
- data['from'] = 'AUTO'
- data['to'] = 'AUTO'
- data['smartresult'] = 'dict'
- data['client'] = client
- data['salt'] = salt
- data['sign'] = sign.hexdigest()
- data['doctype'] = 'json'
- data['version'] = '2.1'
- data['keyfrom'] = 'fanyi.web'
- data['action'] = 'FY_BY_CLlCKBUTTON'
- data['typoResult'] = 'true'
- data = urllib.parse.urlencode(data).encode('utf-8')
- #encode 硬性编码:将uicode换成其他格式(utf-8)
-
- #headers填写--------------------------------------------------------
- head = {}
- head['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.87 Safari/537.36 QQBrowser/9.2.5583.400'
- #另一种方法
- #res.add_headers('key','value')urlopen不能已经指定headers
- #head['Host'] = 'fanyi.youdao.com'#未知 这句可以不要
- head['Referer'] = 'http://fanyi.youdao.com/'#未知
- #访问网页-----------------------------------------------------------
- req = urllib.request.Request(url,data,head)
- res = urllib.request.urlopen(req)
- #不能写成下面的缩略版 原因应该是无法自动转换
- #res = urllib.request.urlopen(url,data,head)
- html = res.read().decode('utf-8')
- #decode 将 utf-8 转换成 unicode
- #输出结果-----------------------------------------------------------
- target = json.loads(html)
- print("翻译结果:%s\n" % (target['translateResult'][0][0]['tgt']))
复制代码 |
|