• 售前

  • 售后

热门帖子
入门百科

Python爬虫+Tkinter制作一个翻译软件的示例

[复制链接]
御风而行2017 显示全部楼层 发表于 2021-10-25 19:49:29 |阅读模式 打印 上一主题 下一主题
目录


  • 一、运行结果
  • 二、实现方法

    • 1. 爬虫部门
    • 2.Tkinter部门

  • 三、打包
  • 四、代码获取
本日咱们用Python爬虫和Tkinter界面来做一个翻译软件。

一、运行结果


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


二、实现方法



1. 爬虫部门


实现一键翻译最简朴的方式就是爬虫,我们只需将要翻译的内容传入,然后将翻译的结果爬取下来出现给用户即可。在本文中,我们选择的网站是有道翻译。
下图这个界面,你在左边输入笔墨,那么欣赏器会把你输入的信息传输给服务器。再在右侧返回对应翻译结果。这就是一个典型的Post操作。

由于之前我们的爬取都是接纳的Get方式来获取数据的,并没有效过Post方式,所以这里简朴给各人说一下怎么用python发送Post请求:
发送post请求分为表单类(x-www-form-urlencoded)和json(application/json)格式,data参数支持字典格式和字符串格式,发起使用字典格式,在使用json.dumps()方法把data转换为合法的json格式字符串,或者将data参数赋值给post方法的json参数,data以字符串格式传输必要留意的事项:
      
  • 必须是json格式字符串,必须用双引号,k-v之家必须有逗号,布尔值必须是小写的true/false  
  • 不能有中文,直接传字符串不会主动编码
我们还是按F12打开开发者模式,发现传入的数据并没有在原网页中出现,所以判断这是一个使用异步革新的网站,所以该URL,应该去XHR中探求,在XHR中发现了我们传入的数据,如图:

一切预备停当了,可以开始书写代码了,爬虫部门代码如下:
  1. url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  2. #使用post需要一个链接
  3. data={'i': word,
  4.   'from': 'AUTO',
  5.   'to': 'AUTO',
  6.   'smartresult': 'dict',
  7.   'client': 'fanyideskweb',
  8.   'doctype': 'json',
  9.   'version': '2.1',
  10.   'keyfrom': 'fanyi.web',
  11.   'action': 'FY_BY_REALTIME',
  12.   'typoResult': 'false'}
  13. #将需要post的内容,以字典的形式记录在data内。
  14. r = requests.post(url, data)
  15. #post需要输入两个参数,一个是刚才的链接,一个是data,返回的是一个Response对象
  16. answer=json.loads(r.text)
  17. #你可以自己尝试print一下r.text的内容,然后再阅读下面的代码。
  18. result = answer['translateResult'][0][0]['tgt']
  19. return result
复制代码
2.Tkinter部门


Tkinter是Python的标准GUI库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简朴的图形界面 Tkinter 能应付裕如。
代码如下:
  1. self.window = Tk()
  2. self.fanyi = YouDaoFanyi()
  3. self.window.title(u'翻译器')
  4. #设置窗口大小和位置
  5. self.window.geometry('310x370+500+300')
  6. self.window.minsize(310,370)
  7. self.window.maxsize(310,370)
  8. #创建一个文本框
  9. self.result_text1 = Text(self.window,background = 'azure')
  10. self.result_text1.place(x = 10,y = 5,width = 285,height = 155)
  11. self.result_text1.bind("<Key-Return>",self.submit1)
  12. #创建一个按钮
  13. #为按钮添加事件
  14. self.submit_btn = Button(self.window,text=u'翻译',command=self.submit)
  15. self.submit_btn.place(x=205,y=165,width=35,height=25)
  16. self.submit_btn2 = Button(self.window,text=u'清空',command = self.clean)
  17. self.submit_btn2.place(x=250,y=165,width=35,height=25)
  18. #翻译结果标题
  19. self.title_label = Label(self.window,text=u'翻译结果:')
  20. self.title_label.place(x=10,y=165)
  21. #翻译结果
  22. self.result_text = Text(self.window,background = 'light cyan')
  23. self.result_text.place(x = 10,y = 190,width = 285,height = 165)
复制代码
来看看结果图:

虽然有一些单调,但是能做到如许还是很不错的。

三、打包


做好程序后,可以将其打包,如许以后不管电脑上有没有python情况,我们都可以使用这个软件来进行翻译,下面来教各人一个简朴的python打包方法。
起首安装PyInstaller第三方库。
  1. pip install Pylnstaller
复制代码
然后使用cmd,切换到必要打包的python程序的存储目录,然后输入该语句即可完成打包。
  1. pyinstaller -F -w xxx.py
复制代码
以上就是本文的全部内容了,希望可以或许对各人的学习起到肯定的帮助作用!

四、代码获取


https://github.com/bigtigeryo/yingyihan
以上就是Python爬虫+Tkinter制作一个翻译软件的示例的详细内容,更多关于python 制作翻译软件的资料请关注草根技术分享别的干系文章!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作