python的urllib实现有道词典简单的英译汉程序

# coding=utf-8
import urllib.request
import urllib
import json
urllib2 = urllib.request

headers = {
# "Host":"fanyi.youdao.com",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0",
"Accept":"application/json, text/javascript, */*; q=0.01",
# "Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
# 以下这个不屏蔽会导致中文不能翻译成英文
# "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8", 
"X-Requested-With":"XMLHttpRequest",
# "Content-Length":"209",
# "Connection":"keep-alive"
}
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom="
key = input("请输入要翻译的内容:")
formdata = {
	"i":key,
	"from":"AUTO",
	"to":"AUTO",
	"smartresult":"dict",
	"client":"fanyideskweb",
	"salt":"1525335936774",
	"sign":"5747b87ca68723a7230af9cb648a04c1",
	"doctype":"json",
	"version":"2.1",
	"keyfrom":"fanyi.web",
	"action":"FY_BY_REALTIME",
	"typoResult":"false"
}
# 转码
data = urllib.parse.urlencode(formdata).encode(encoding='UTF-8')
# print(data)
# 发送请求
request = urllib2.Request(url,data = data ,headers = headers)
response = urllib2.urlopen(request)

html = response.read().decode('utf-8')
# strip()去掉首位空格
print("完整的结果:",html.strip()+'\n')
# json文件读取
target = json.loads(html)
# 最终字典列表输出
# print(target["translateResult"][0][0]["tgt"])

if target["type"] == 'ZH_CN2EN':
	print('"%s"的英文翻译结果为:%s'%(key,target["translateResult"][0][0]["tgt"]))
elif target["type"] == 'EN2ZH_CN'or 'JA2ZH_CN':
	print('"%s"的中文翻译结果为:%s'%(key,target["translateResult"][0][0]["tgt"]))

你可能感兴趣的:(python,urllib,python,urllib)