Python实现桌面翻译小工具(有道API实现)

Python实现桌面翻译小工具(有道API实现)


自从入门了这号称 除了生孩子,其他无所不能的Python,便对其产生了浓厚的兴趣,尤其是它强大的 requests库,深得我的偏爱。这不,最近正在做一个项目的演示文档,其中需要写大量的英语单词,但对于一个英语渣渣来说,只能通过神器有道翻译来“提高词汇量”,奈何我8750+1060压不住一个有道词典客户端,而网页版的打开又太麻烦,心里想着何不自己写一个简洁点的小工具,于是,便有了以下的东东。

-------------------------------------------手动分割线-------------------------------------------------


首先讲一下我的实现原理,其实非常的简单,没有任何技术含量。 通过解析有道翻译的链接,然后传参给服务器,最终提取服务器返回的内容,然后通过GUI界面展示出来。

好了,下面我们开始讲解代码

第一步,当然是安装模块啦。老规矩,打开cmd,以管理员身份运行。然后开始安装模块。

pip install requests
pip install tkinter
pip install json

然后,就开始写代码了。先导入模块。

import requests
import json
from tkinter import *

设置一下代理和URL,这里注意一下这个地址,官网复制过来之后是http://fanyi.youdao.com/,然而我搞了大半天都是报错,后来经过百度之后发现,原来是网易在URL上做了手脚,又经过查找得到其隐藏掉的另一段,这里我就直接贴过来了。

headers = {
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'}
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" 

接下来就是核心代码了,先定义一个提交数据/爬取数据的鼠标事件。

def m1Click():
    data = {
     
        "i": en.get(),
        "doctype": "json"
    }
    #浏览器显示需要提交很多条信息,但无意间发现只需要提交这两个就可以了。所以在这我就不贴其他的信息了
    back = requests.post(url, data=data, headers=headers)
    data = back.json()    #接收返回的json数据
    x = data['translateResult'][0][0]['tgt']       #最终提取有用的字段
    txt.set(x)

然后接着再来定义一个函数,这个函数的功能先不做介绍,后面会提到。

def m2Click():
    log_in.delete(0,END)
    result.delete(0,END)

然后再来定义一个函数,这个函数的目的是实现输入信息之后敲回车键可以直接调用m1Click鼠标事件,相当于直接点击下面的翻译按钮。

def m3Click(self):
    m1Click()

下面就是该设计界面了,作为一个正儿八经没有艺术细胞的理工男,设计界面是很糟心的,所以干脆简单暴力点,直接使用绝对布局。

top = Tk()
top.geometry('400x235')
top.title('翻译')

en = StringVar()
txt = StringVar()
show = Label(top,text = "请输入翻译内容:",font = ('黑体','12'))
log_in = Entry(top,textvariable = en,width=30,font = ('黑体','12'))
result = Entry(top,textvariable = txt,width = 46,font = ('黑体','12'))
#这里本来应该用Label标签,但是想到Label标签不能复制,所以就用了Entry,毕竟cv大法很是方便
trans = Button(top,text = "翻译",command = m1Click,font = ('黑体','12'))
clean = Button(top,text = "清空",command = m2Click,font = ('黑体','12'))
#这里的m2Click事件便是之前所说的,这个的目的是实现清空两个文本框的功能,直接点击“清空”按钮便可清空文本框中的数据,方便下次输入。
log_in.bind("", m3Click)
log_in.focus()    #光标默认在log_in框中,即输入框

top.resizable(0,0)   #固定窗口大小

show.place(x = 10,y = 20)
log_in.place(x = 140,y = 20)
trans.place(x = 90,y = 70)
clean.place(x = 260,y = 70)
result.place(x = 10,y = 120)
               
top.mainloop()

好了,代码到这就可以结束了。接下来要做的就是生成可执行文件了。
首先还是安装pyinstaller模块。

pip install pyinstaller

然后就是进行生成。

cd xxxxxx   //进入存放py文件的文件目录
pyinstaller -F -w -i xxx.ico xxx.py  //进行生成,其中包含图标文件
//-F 打包单个文件
//-w 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效),如果是GUI界面,建议使用此参数
//-i 将file.ico添加为可执行文件的资源(只对Windows系统有效),即改变程序的图标 

好了,小工具写到这就算实现了,下面贴上我的运行效果以及资源链接。

Python实现桌面翻译小工具(有道API实现)_第1张图片
初步入门的小白,若文章出现问题,还请大佬指正。

你可能感兴趣的:(笔记,Python,爬虫)