import urllib.request as r
import urllib.parse as p
import json
import time
def translate():
while 1:
content = input('请输入需翻译的英文(输入q退出):')
if content=='q':
break
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/'
# 伪装成浏览器方式一,设置head头,传入urllib.request.Request()中
# head = {
# 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'
# }
# 方式二.Request()对象使用add_header()方法
# form表单内容
data = {
'i':content,
'from':'AUTO',
'to':'AUTO',
'smartresult':'dict',
'client':'fanyideskweb',
'salt':'1530531375538',
'sign':'77aef11f1358ae73d2f1589b4a1118c3',
'doctype':'json',
'version':2.1,
'keyfrom':'fanyi.web',
'action':'FY_BY_CLICKBUTTION',
'typoResult':'false'
}
# 格式化表单数据
data = p.urlencode(data).encode('utf-8')
print('data:',data)
# 访问网站并以post方式提交
reg = r.Request(url,data)
reg.add_header('User_Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0')
response= r.urlopen(reg)
# 获得str类型的结果
html = response.read().decode('utf-8')
print('html的类型:',type(html))
# 转换为json类型
target = json.loads(html)
print('target的类型:',type(target))
print(html)
print(target['translateResult'])
# 去掉外部的2层
print(target['translateResult'][0][0]['tgt'])
#延迟提交
time.sleep(5)
return response
x=translate()