python软件中文翻译_python 写一个桌面版的翻译软件
主要技术:爬虫和tkinter模块的运用
思路说明:设计一个图形界面,第一行输入中文,点击 “翻译” 按钮,此时做的就是将输入的内容,通过有道网页翻译,发出POST请求,得到回应后,将翻译结果显示在第二行,现象是 “结果” 行输出翻译结果;点击 “退出” 按钮就退出
先说布局-------tkinter的运用
最终实现图片如下
image.png
直接上代码
from tkinter import *
master = Tk()
#设置标题
master.title('翻译软件')
#小x,非大X,设置大小
master.geometry('400x100+450+278')
#设置标签,排版(第一行第一列,即row=0,column=0)
Label(master,text="输入任容:",font=('GB2312',18),fg='blue').grid(row=0,column=0)
Label(master,text="结果:",font=('GB2312',18),fg='blue').grid(row=1,column=0)
#设置文本框 对应上边lable的排版
Entry(master,font=('GB2312',18)).grid(row=0,column=1)
Entry(master,font=('GB2312',18)).grid(row=1,column=1)
#设置按钮 按钮增加响应事件commnad=函数名,sticky设置对齐(参数 东起南北)
Button(master,text="翻译",width=10,font=('GB2312',18)).grid(row=2,column=0,sticky=W)
Button(master,text="退出",width=10,font=('GB2312',18),command=master.quit).grid(row=2,column=1,sticky=E)
master.mainloop()
产生如下界面 点击退出,就会推出
image.png
爬虫部分
import json
import requests
def fanyi():
#url不是http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule,把_o去掉
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
data ={
'i': '你好',
'doctype': 'json'
}
#此处是POST请求
r = requests.post(url,data=data)
ret = r.content.decode()
result = json.loads(ret)
print(result)
fanyi()
输出结果,可以看出返回结果在JSON里面
image.png
说下思路,打开有道翻译网页版,F12,查看Network,翻译 "你好"
输出 hello,在这里可以获取url和请求方式POST,往下找到Form Date就是需要POST的数据结构,只需2个,就可以了
image.png
image.png
整合两部分
首先,输出框里面是个变量,因为输入内容不定
res = StringVar()
entry2 = Entry(master,font=('GB2312',18),textvariable=res)
entry2.grid(row=1,column=1)
其次设置翻译按钮事件,关联到自己写的fanyi函数
Button(master,text="翻译",width=10,font=('GB2312',18),command=fanyi).grid(row=2,column=0,sticky=W)
最后就是翻译函数,首先获取输入内容,然后在将爬取到的结果给变量
res(上面定义的)
def fanyi():
#获取输入内容,并去除空格
content = entry1.get().strip()
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
#组合需要POST的data数据,需要翻译内容为content变量
data ={
'i': content,
'doctype': 'json'
}
#发送请求
r = requests.post(url,data=data)
ret = r.content.decode()
result = json.loads(ret)
print(result)
#输出结果为:{'type': 'ZH_CN2EN', 'errorCode': 0, 'elapsedTime': 0, 'translateResult': [[{'src': '你好', 'tgt': 'hello'}]]}
#设置结果框res变量为需要的结果,不熟悉dict操作的,百度下
#只需要hello
res.set(result['translateResult'][0][0]['tgt'])
完整代码
import json
from tkinter import *
import requests
def fanyi():
content = entry1.get().strip()
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
data ={
'i': content,
'doctype': 'json'
}
r = requests.post(url,data=data)
ret = r.content.decode()
result = json.loads(ret)
#print(result)
res.set(result['translateResult'][0][0]['tgt'])
#print(content)
master = Tk()
master.title('翻译软件')
#小x,非大X
master.geometry('400x100+450+278')
#设置标签
Label(master,text="输入任容:",font=('GB2312',18),fg='blue').grid(row=0,column=0)
Label(master,text="结果:",font=('GB2312',18),fg='blue').grid(row=1,column=0)
#设置文本框
entry1 = Entry(master,font=('GB2312',18))
entry1.grid(row=0,column=1)
res = StringVar()
entry2 = Entry(master,font=('GB2312',18),textvariable=res)
entry2.grid(row=1,column=1)
#设置按钮
Button(master,text="翻译",width=10,font=('GB2312',18),command=fanyi).grid(row=2,column=0,sticky=W)
Button(master,text="退出",width=10,font=('GB2312',18),command=master.quit).grid(row=2,column=1,sticky=E)
master.mainloop()
运行结果:
image.png
image.png
感谢阅读~
python软件中文翻译_python 写一个桌面版的翻译软件相关推荐
- python关于通讯录模型_python写一个通讯录 - wtwexile - 博客园
python写一个通讯录 闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 1 import j ...
- python软件界面翻译_python英汉词典,在线翻译器,带GUI界面下载
使用请求模块获得的职位信息有道词典网页,BeautifulSoup获得所需的内容,并生成gui界面通过tkinter模块.2. Python实现翻译工具git源代码地址代码如下:# !\/bin\/e ...
- python 京东 抢券_Python写一个京东抢券脚本
最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. ##几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如Burp ...
- python抢券代码_Python写一个京东抢券脚本
最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. 几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如BurpSu ...
- 从0到1,用Compose搞一个桌面版的天气应用
/ 今日科技快讯 / 近日,一加9周年庆上,OPPO首席产品官.一加创始人刘作虎在活动上宣布OPPO正式开启双品牌时代,OPPO线上就是一加.同时,OPPO为一加开启「护航计划」,未来三年将单 ...
- python代码是什么意思中文翻译_python什么意思中文翻译
python什么意思中文翻译? python的中文翻译意思是蟒蛇,而实际上这个名字的来历是发明者为了纪念他喜爱马戏团的一个角色,角色名就是python. 推荐:<python教程> 相关介 ...
- js桌面应用 Linux,从 1 到完美,用 js 和 electron 写一个桌面应用
从 1 到完美,用 js 和 electron 写一个桌面应用 目前用 js 和前端技术写桌面软件的方案主要有两种:electron 和 nw.js.这两者在底层实现上有所不同,简单的说,electr ...
- Python实现中文翻译到英文——附源代码
Python实现中文翻译到英文--附源代码 作为一个程序员,真实的场景下,你可能会需要将中文翻译成英文.在这篇文章中,我将会向大家介绍一种Python实现中文翻译到英文的方法. 首先,我们需要导入两个 ...
- 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是 ...
最新文章
- 关闭CISCO不必要的服务
- 皮一皮:这样的消息我也想收...
- 【行业报告】基于社交图谱关系的反欺诈产品应用——青云
- 仿微博国际版首页点击显示分组列表(popupwindow悬浮阴影效果)
- 15-CSS基础-浮动流
- 【codevs1946】【BZOJ2434】阿狸的打字机,AC自动机练习
- 我只是bug的搬运工之jsp 编辑预览时样式可以显示出来,而在浏览器浏览时无法显示出来!
- Centos7挂载iso镜像文件配置本地yum源
- java判断读到末尾_Java 中的运算符和流程控制
- 转自瑞星:“永恒之蓝”WannaCry勒索病毒分析报告
- ExtJS EditorGridPanel 示例之JSON格式Store前后台增删改查
- c语言16qam,基于FPGA的高阶QAM调制器的实现
- mysql实验报告4_数据库实验四实验报告
- UVA - 11729 Commando War
- 采样频率和带宽的关系_示波器的带宽与采样率是什么关系
- tableau,js,html,maxVizResizeAttempts错误
- iOS印象笔记添加到Siri捷径,怎么实现的?
- 2023年企业固定资产管理怎么破局?
- 电脑硬盘右击计算机就卡死,电脑右键就卡死是什么原因?
- 【python系列】使用mayavi画3d散点图