python实现翻译软件效果如图:
需要联网才能进行翻译
思路:
利用Requests模块获取有道词典web页面的post信息
提取json数据信息
通过tkinter模块生成gui界面
源代码如下:
from tkinter import *
from tkinter import messagebox
import requests
# 接收用户输入的单词 进行翻译
def translation():
# 获取用户输入的单词
content=entry1.get()
# 去空格
content=content.strip()
if content=='':
messagebox.showinfo("提示","请输入要翻译的内容")
else:
# 模拟发送请求
url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
# 请求头
header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}
data={}
data['i']=content
data['from']='AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
# # 时间戳
# data['salt'] = 1538961219261
# # 签名 加密
# data['sign'] = '0f98badcb537e9506a94f4c5e4c8cb90'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'false'
# 发送post请求 并用result接收返回数据
result=requests.post(url,data=data,headers=header)
transl=result.json()
translation=transl['translateResult'][0][0]['tgt']
res.set(translation)
# 创建窗口
root=Tk()
# 设置标题
root.title("中英互译")
# 窗口大小
root.geometry('350x93')
# 窗口位置
root.geometry('+500+300')
# 标签控件
label1=Label(root,text='输入要翻译的文字:')
# 定位
label1.grid(row=0,column=0)
label2=Label(root,text='翻译之后的结果:')
label2.grid(row=1,column=0)
# 输入框控件
entry1=Entry(root,font=('微软雅黑',15))
entry1.grid(row=0,column=1)
# 显示翻译结果
res=StringVar()
entry2=Entry(root,font=('微软雅黑',15),textvariable=res)
entry2.grid(row=1,column=1)
# 按钮控件
button1=Button(root,text='翻译',width=10,command=translation)
button1.grid(row=2,column=0,sticky=W)
button2=Button(root,text='退出',width=10,command=root.quit)
button2.grid(row=2,column=1,sticky=E)
# 显示窗口 消息循环
root.mainloop()