使用python打造一个中英互译软件(基于有道翻译)

(本博客简洁明了,适合小白入门)

首先明确整体构架:

1.爬虫部分

2.界面部分

3.打包

 

涵盖的库:

import urllib.request
import urllib.parse
import json
import tkinter as tk
import tkinter.messagebox

先确定爬取的URL地址:

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'

1.爬虫部分

使用一个函数实现该功能,该函数内还包含了输入内容传递、列表框的翻译结果显示部分等与界面部分联系

输入翻译内容、传递、获取网页响应,爬取翻译内容:

def fanyi():content = sr.get()data = {}data['i'] = contentdata['from'] = 'AUTO'data['to'] = 'AUTO'data['smartresult'] = 'dict'data['client'] = 'fanyideskweb'data['salt'] = '15613765644784'data['sign'] = '5caabbf646f6585277b7cebf45f18244'data['ts'] = '1561376564478'data['bv'] = '6074bfcb52fb292f0428cb1dd669cfb8'data['doctype'] = 'json'data['version'] = '2.1'data['keyfrom'] = 'fanyi.web'data['action'] = 'FY_BY_REALTlME'data = urllib.parse.urlencode(data).encode('utf-8')r = urllib.request.urlopen(url,data)html = r.read().decode('utf-8')target = json.loads(html)jieguo = target['translateResult'][0][0]['tgt']xs.insert(tk.END, '{}'.format(jieguo))xs.see(tk.END)xs.update()# tkinter.messagebox.showwarning('翻译结果', '{}'.format(jieguo))xs.insert(tk.END, '*********翻译完成,清空输入框重新输入<>如需复制,点击内容Ctrl+C即可*********')xs.see(tk.END)xs.update()

2.界面部分

使用tkinter实现简单的用户界面

其中包括主界面、界面中的功能按钮(函数调用到按钮命令)及其实现函数等等

其中quit(退出)命令在打包时使程序运行失败,具体原因待考究,所以如果需要打包函数ml1中的quit删除,用警告框代替(#后部分),程序运行时请手动点击右上角X退出

def ml():quit()
#  tk.messagebox.showwarning("抱歉", "目前该功能正在完善中")def ml2():xs.delete(0,tk.END)fy = tk.Tk()               #yy为Tk类型
fy.geometry('463x350')     #设置界面大小fy.title('王牌翻译器1.0(Roud)')    #界面主题(左上角)label = tk.Label(fy,text='请输入需要翻译的内容:')          #界面内文本显示
label.grid(row=0,column=0,sticky='w',padx=5)    #文本位置sr = tk.Entry(fy,width=37)                    #界面输入框
sr.grid(row=0,column=1,columnspan=2,sticky='w')  #输入框位置,W为西,E为东xs = tk.Listbox(fy, width=65, heigh=15)            #显示框大小
xs.grid(row=1,columnspan=3,sticky='w')
'''
源代码来源:Roud    更多详情  请在CSDN搜索博主:101岁咳血敲码
感谢 有道翻译 对本程序的支持'''# def ml1():
#     tkinter.messagebox.showwarning('警告','尚在开发中')b1=tkinter.Button(fy,text='确认',command=fanyi,width=10)
b1.grid(row=2,column=0,sticky='w')b2=tkinter.Button(fy,text='清空',command=ml2,width=10)
b2.grid(row=2,column=1,sticky='w')b2=tkinter.Button(fy,text='退出',command=ml,width=10)
b2.grid(row=2,column=2,sticky='e')fy.mainloop()

完整代码:

import urllib.request
import urllib.parse
import json
import tkinter as tk
import tkinter.messageboxurl = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'def fanyi():content = sr.get()data = {}data['i'] = contentdata['from'] = 'AUTO'data['to'] = 'AUTO'data['smartresult'] = 'dict'data['client'] = 'fanyideskweb'data['salt'] = '15613765644784'data['sign'] = '5caabbf646f6585277b7cebf45f18244'data['ts'] = '1561376564478'data['bv'] = '6074bfcb52fb292f0428cb1dd669cfb8'data['doctype'] = 'json'data['version'] = '2.1'data['keyfrom'] = 'fanyi.web'data['action'] = 'FY_BY_REALTlME'data = urllib.parse.urlencode(data).encode('utf-8')r = urllib.request.urlopen(url,data)html = r.read().decode('utf-8')target = json.loads(html)jieguo = target['translateResult'][0][0]['tgt']xs.insert(tk.END, '{}'.format(jieguo))xs.see(tk.END)xs.update()# tkinter.messagebox.showwarning('翻译结果', '{}'.format(jieguo))xs.insert(tk.END, '*********翻译完成,清空输入框重新输入<>如需复制,点击内容Ctrl+C即可*********')xs.see(tk.END)xs.update()def ml():quit()
#  tk.messagebox.showwarning("抱歉", "目前该功能正在完善中")def ml2():xs.delete(0,tk.END)fy = tk.Tk()               #yy为Tk类型
fy.geometry('463x350')     #设置界面大小fy.title('王牌翻译器1.0(Roud)')    #界面主题(左上角)label = tk.Label(fy,text='请输入需要翻译的内容:')          #界面内文本显示
label.grid(row=0,column=0,sticky='w',padx=5)    #文本位置sr = tk.Entry(fy,width=37)                    #界面输入框
sr.grid(row=0,column=1,columnspan=2,sticky='w')  #输入框位置,W为西,E为东xs = tk.Listbox(fy, width=65, heigh=15)            #显示框大小
xs.grid(row=1,columnspan=3,sticky='w')
'''
源代码来源:Roud    更多详情  请在CSDN搜索博主:101岁咳血敲码
感谢 有道翻译 对本程序的支持'''# def ml1():
#     tkinter.messagebox.showwarning('警告','尚在开发中')b1=tkinter.Button(fy,text='确认',command=fanyi,width=10)
b1.grid(row=2,column=0,sticky='w')b2=tkinter.Button(fy,text='清空',command=ml2,width=10)
b2.grid(row=2,column=1,sticky='w')b2=tkinter.Button(fy,text='退出',command=ml,width=10)
b2.grid(row=2,column=2,sticky='e')fy.mainloop()

效果图:

3.打包部分

首先制作图标:选择一张喜欢的图片,进入网站生成图标即ico格式(参考网站:https://lvwenhan.com/convertico/),保存与到要打包的py文件同一路径下。

其次,在cmd指令下切换到py文件目录

最后输入指令 (注意将指令中的中文部分修改成你在目录下相应的名称)

pyinstaller -F -w -i 你的图标名,带ico格式.ico 你的py名.py 

最后打包成功,在文件目录下会多出一个dist文件,exe文件就在其中

如下(ou~瞧瞧这高水平的翻译

注:毕竟不是大佬,表达能力又欠缺,所以难免有疏漏之处,欢迎评论指正

还有,如果有小伙伴对本博客的内容存在疑惑,可关注、骚扰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57758.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu最好用的划词翻译词典:有道词典和GoldenDict

目录 1、安装有到词典 2、安装GoldenDict 3、GoldenDict的一些简单配置以及相关bug修改 用惯了Windows下的有道词典&#xff0c;其划词翻译功能用起来令人极其舒适&#xff5e;Ubuntu系统中也有有道词典以及一个类似的类似的软件GoldenDict&#xff0c;下面就分别介绍下这两…

有道翻译接口 破解

有道翻译 API 最近有些任务需要将中文翻译成英文&#xff0c;由于个人英文水平问题&#xff0c;每次都要打开好几个在线翻译网页&#xff0c;一句一句的丢进去&#xff0c;取最佳者为所用&#xff0c;甚是麻烦。 任务完成之后&#xff0c;就稍微研究了一下各个翻译接口&#…

对接有道翻译api中英翻译软件

中译英翻译软件对接了有道翻译API的翻译数据接口&#xff0c;通过数据接口&#xff0c;我们可以获得文本的批量翻译并对我们的译后文本进行内容自动编辑&#xff0c;通过调用有道翻译API数据接口&#xff0c;我们可以在我们的中译英翻译软件中更灵活地对我们的文本进行翻译处理…

百度、阿里、腾讯、有道各平台翻译API申请教程

文章目录 文章推荐 vscode插件 var-translate-en 中翻英转驼峰命名百度翻译申请腾讯翻译申请阿里翻译申请有道翻译申请 文章推荐 vscode插件 var-translate-en 中翻英转驼峰命名 快捷 一键转换为英文&#xff0c;并生成多种命名风格支持多平台翻译服务配置&#xff08;谷歌、腾…

塔望 · ​食界​人物|红牛饮料背后的两个企业家

关注行业&#xff0c;更要关注行业发展背后的人。关注企业&#xff0c;更要关注企业的人格化身——“企业家”。人类在任何领域的创新和进步&#xff0c;都离不开企业家精神。优秀的企业家和企业家精神&#xff0c;是经济社会发展的重要推动力。 本期塔望【​食界​人物】将带…

正则表达式爬取红牛分公司数据

正则表达式还是很好玩的,爬取红牛官网分公司信息 import requests import re import pandas as pd response requests.get(url"http://www.redbull.com.cn/about/branch") company re.findall(<h2>(.*?)</h2>, response.text) add re.findall("…

列表表达式爬取红牛分公司数据

列表达式爬取红牛官网分公司信息 import requests import pandas as pd import bs4 response requests.get("http://www.redbull.com.cn/about/branch") main_page bs4.BeautifulSoup(response.text,"html.parser") company [i.text for i in main_pag…

红牛商标所有者泰国天丝集团将投资逾10亿元深化在华布局

全球红牛品牌及“红牛”商标的创始者和所有者 -- 泰国天丝集团宣布&#xff0c;未来三年将对其在华业务进行一系列投资&#xff0c;总额高达10.6亿人民币。具体包括深化在华合作伙伴战略关系、在中国设立新的代表处、组建国内团队、扩建新的生产基地以及推出集团旗下更多新产品…

从红牛案看商业伦理和社会公义中的众生相

一出与生恩、养恩有关的大戏&#xff0c;正在中国商业界上演。 “儿子”是红牛&#xff0c;一方是在养育红牛的华彬集团&#xff0c;一方是生育红牛的泰国天丝&#xff0c;自2016年以来&#xff0c;双方数次诉讼、数次论战&#xff0c;严重冲击了市场秩序的稳定繁荣。 对于生…

java红牛农场答案_Java面向对象程序设计实验指导与习题解答(21世纪高等学校计算机专业实用规划教材)...

导语 《Java面向对象程序设计实验指导与习题解答》是《Java面向对象程序设计》(作者耿祥义,清华大学出版社出版,2010)的配套实验指导和习题解答,目的是通过一系列实验练习使学生巩固所学的知识。本书由16个实验组成,每个实验由6个主要部分构成。本书由耿祥义、张跃平编著。…

红牛开发板模拟器简要说明_V1.0

文档名称 红牛开发板模拟器简要说明_V1.0 版本 1.0 作者 叶帆 日期 2011-2-27 历史 文档列表 http://www.sky-walker.com.cn/MFRelease/YF_document_list.pdf 1、前言 .NET Micro Framwork 除了简单易于开发外&#xff0c;还有一个比较有用的功能&#xff0c;那就是…

zte android截屏快捷键,中兴红牛V5手机怎么截屏 中兴红牛V5截图技巧图解

中兴红牛V5手机截屏怎么截的呢&#xff0c;对于刚开始用智能机的我来说&#xff0c;是一个不小的尝试&#xff0c;包括我刚知道的候一样&#xff0c;下面由本小编教大家怎么使用中兴红牛手机截屏和截图的技巧。操作步骤如下&#xff1a; 红牛V5怎么截屏 中兴红牛V5截图技巧 [中…

我有故事,你有红牛吗?

前言 不经意留意到CSDN官方的活动1024有奖征文|我和CSDN的故事 &#xff0c;CSDN提供了一个帮助自己成长的平台&#xff0c;所以决定写一篇文章真诚的感谢CSDN&#xff0c;当然了我肯定不会为了那小小的奖品而折腰的&#xff0c;不就是个衣服嘛&#xff0c;不就是个会员嘛&…

AutoGPT保姆级使用教程

1. 介绍 Auto-GPT是一个基于ChatGPT的工具&#xff0c;他能帮你自动完成各种任务&#xff0c;比如写代码、写报告、做调研等等。使用它时&#xff0c;你只需要告诉他要扮演的角色和要实现的目标&#xff0c;然后他就会利用ChatGPT和谷歌搜索等工具&#xff0c;不断“思考”如何…

谷歌高级软件工程师的一天

作者 | Dimitris Leventeas 译者 | 弯月 原文链接&#xff1a;https://dimle.wordpress.com/2022/04/24/my-typical-working-day-as-software-engineer/ 本文为 CSDN 翻译&#xff0c;未经授权&#xff0c;禁止转载 我的工作 我有一个文档&#xff0c;专门记录待完成的任…

如何下载一篇文献的所有被引文献(傻瓜式操作,亲测可行,方便快捷,需要教育账号)

最近学习一篇文献时&#xff0c;需要查看所有引用过这篇文献的文章&#xff0c;并且下载出来。当然&#xff0c;如果引用的文献较少的话&#xff0c;可以通过网页直接搜索下载下来。但是如果超过10篇以上&#xff0c;我就会感觉比较繁琐。那么&#xff0c;有没有什么方法可以一…

如何在Springer使用bibtex自动生成引用文献,而不写Bibitem

最近投稿过程中帮忙排版&#xff0c;然后发现Springer的模板只能用Bibitem, 网上有许多馊主意&#xff0c; 例如手动写Bibitem&#xff0c;例如引用一些无用的包&#xff0c;尝试了几个小时&#xff0c;都没有用。 最后在英文论坛发现了这个秘密&#xff0c; Referee Link:具…

还在为写综述发愁找不到文献吗?学术搜索semantic scholar你值得拥有

首先&#xff0c;附上搜索网址&#xff1a; https://www.semanticscholar.org/ 目录 1.介绍2.官网样子什么样3.特色功能3.1 被引用情况分类3.2 学者影响力评价 1.介绍 官网介绍到 We are a team of researchers and engineers at the Allen Institute for AI building a bette…

bibtex到bibitem的转换的超详细教程(获取参考文献的bibitem)

1、获取引用论文的BibTex 这里以谷歌学术为例&#xff0c;搜索论文’Faster r-cnn: Towards real-time object detection with region proposal networks‘。如下图所示&#xff1a; 点击引用符号&#xff0c;出现以下页面。 点击BibTex&#xff0c;会跳转出该论文的BibTeX。如…

【BIB文献管理】LATEX使用bib

使用IEEEtran模板 在论文写作中&#xff0c;常使用IEEEtran的提供的模板&#xff0c;为了做文献管理&#xff0c;引入bib。 建立bib文件 在.tex的文件夹目录下&#xff0c;新建文本文档&#xff0c;另存为.bib文件即可。 引用文献 搜索需要引用的论文&#xff0c;引用为bib…