# -*-coding: UTF-8 -*-
# @Time:2019/9/818:54
# @author superxjz
# @func 简单的机器翻译实战
"""
实现一个简单的翻译功能
"""
import requests
from tkinter import Tk,Button,Entry,Label,Text,END
#self其实相当于this关键字
#将代码进行封装
class YouDao(object):
def __init__(self):
pass
def crawl(self,word):
#url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
#表单数据如下
data={
"i":word,
"from":"AUTO",
"to":"AUTO",
'smartresult': 'dict',
'client': 'fanyideskweb',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTIME',
'typoResult': 'false'
}
#将需要post的数据椅子垫的形式存储在data中
r = requests.post(url,data=data)
#post需要提交两个参数,一个是url,一个是data返回一个response对象
answer = r.json()
result = answer["translateResult"][0][0]["tgt"]
# print(" "+word+"的翻译结果为:"+result+"\n")
return result
class APP(object):
def __init__(self):
self.window=Tk()
self.fanyi=YouDao()
#窗体的名称
self.window.title(u"在线翻译")
#调整窗口的大小
self.window.geometry('300x400+500+300')
self.window.minsize(300,400)
self.window.maxsize(300,400)
#设置文本输入框
self.entry=Entry(self.window)
self.entry.place(x=10,y=10,width=200,height=25)
self.entry.bind("<Key-Return>",self.submit1)
#设置输入显示文本框
self.result_text1=Text(self.window,background="azure")
self.result_text1.place(x=10,y=10,width=285,height=155)
self.result_text1.bind("<Key-Return>",self.submit1)
#设置提交按钮
self.submit_btn = Button(self.window, text=u'翻译', command=self.submit)
self.submit_btn.place(x=205, y=165, width=35, height=25)
self.submit_btn2 = Button(self.window, text=u'清空', command=self.clean)
self.submit_btn2.place(x=250, y=165, width=35, height=25)
#设置结果之前的标题
self.title_label = Label(self.window, text=u'翻译结果:')
self.title_label.place(x=10, y=165)
self.result_text = Text(self.window, background='light cyan')
self.result_text.place(x=10, y=190, width=285, height=165)
#这个提交的是输入文本的内容
def submit1(self, event):
content = self.result_text1.get(0.0, END).strip().replace("\n", " ")
result = self.fanyi.crawl(content)
self.result_text.delete(0.0, END)
# self.result_text.insert(END, result)
self.result_text.insert(END, result)
def submit(self):
#点击按钮得到内容
content = self.result_text1.get(0.0, END).strip().replace("\n", " ")
#爬虫得到内容
result = self.fanyi.crawl(content)
self.result_text.delete(0.0, END)
self.result_text.insert(END, result)
print(content)
def clean(self):
self.result_text1.delete(0.0, END)
self.result_text.delete(0.0, END)
def run(self):
self.window.mainloop()
if __name__=="__main__":
app = APP()
app.run()
python实现简易的翻译机器
最新推荐文章于 2024-06-22 14:38:57 发布