用Python爬虫+Tkinter制做一个翻译软件

今天我们用Python爬虫和Tkinter界面来作一个翻译软件。css

1、运行效果

软件实现功能:当咱们输入英文或中文时,程序便可打印出来对应的译文,如图:python

 

2、实现方法

1. 爬虫部分

实现一键翻译最简单的方式就是爬虫,咱们只需将要翻译的内容传入,而后将翻译的结果爬取下来呈现给用户便可。在本文中,咱们选择的网站是有道翻译。git

下图这个界面,你在左边输入文字,那么浏览器会把你输入的信息传输给服务器。再在右侧返回对应翻译结果。这就是一个典型的Post操做。github

 

因为以前咱们的爬取都是采用的Get方式来获取数据的,并无用过Post方式,因此这里简单给你们说一下怎么用python发送Post请求:web

发送post请求分为表单类(x-www-form-urlencoded)和json(application/json)格式,data参数支持字典格式和字符串格式,建议使用字典格式,在使用json.dumps()方法把data转换为合法的json格式字符串,或者将data参数赋值给post方法的json参数,data以字符串格式传输须要注意的事项:json

  1. 必须是json格式字符串,必须用双引号,k-v之家必须有逗号,布尔值必须是小写的true/false
  2. 不能有中文,直接传字符串不会自动编码

咱们仍是按F12打开开发者模式,发现传入的数据并无在原网页中出现,因此判断这是一个使用异步刷新的网站,因此该URL,应该去XHR中寻找,在XHR中发现了咱们传入的数据,如图:浏览器

 

一切准备就绪了,能够开始书写代码了,爬虫部分代码以下:bash

url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' #使用post须要一个连接 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) #post须要输入两个参数,一个是刚才的连接,一个是data,返回的是一个Response对象 answer=json.loads(r.text) #你能够本身尝试print一下r.text的内容,而后再阅读下面的代码。 result = answer['translateResult'][0][0]['tgt'] return result 

2.Tkinter部分

Tkinter是Python的标准GUI库。Python 使用 Tkinter 能够快速的建立 GUI 应用程序。服务器

因为 Tkinter 是内置到 python 的安装包中、只要安装好 Python 以后就能 import Tkinter 库、并且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 能应付自如。app

代码以下:

self.window = Tk()
self.fanyi = YouDaoFanyi()
self.window.title(u'翻译器') #设置窗口大小和位置 self.window.geometry('310x370+500+300') self.window.minsize(310,370) self.window.maxsize(310,370) #建立一个文本框 self.result_text1 = Text(self.window,background = 'azure') self.result_text1.place(x = 10,y = 5,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) 

来看看效果图:

 

 

虽然有一些单调,可是能作到这样仍是很不错的。

3、打包

作好程序后,能够将其打包,这样之后无论电脑上有没有python环境,咱们均可以使用这个软件来进行翻译,下面来教你们一个简单的python打包方法。

首先安装PyInstaller第三方库。

pip install Pylnstaller

而后使用cmd,切换到须要打包的python程序的存储目录,而后输入该语句便可完成打包。

pyinstaller -F -w xxx.py 

以上就是本文的所有内容了,但愿可以对你们的学习起到必定的帮助做用!

4、代码获取

https://github.com/bigtigeryo/yingyihan

相关文章
相关标签/搜索