欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于python爬虫原理的桌面翻译小软件

程序员文章站 2022-03-10 22:16:14
...

本文任务是制作一个python桌面翻译小程序,主要内容是:
①编写gui用户界面。
②利用爬虫的原理从在线翻译中抓取翻译结果。
③利用Pyinstaller将python程序打包成exe可执行文件,体验一下不用python解释器也能运行python程序的乐趣。

#导入爬虫库,gui用户界面库
import requests
from tkinter import *
from tkinter import messagebox
# 执行翻译的函数
def translate():
    # 获取text控件,从头到位:‘0.0’,END.
    content = text.get('0.0', END)
    # 去除text输入前面的空格
    con = content.strip()
    if con == '':
        # 如果输入为空,则发出提示。
        messagebox.showinfo('提示', message="内容为空!请输入翻译的内容!")
        return
    else:
        url = 'http://fy.iciba.com/ajax.php?a=fy'
        data = {
            'f': 'auto',
            # AUTO说明可以翻译任意可识别的语言(比如汉语、英语、日语……)
            't': 'auto',
            'w': con
        }
        # 如果不用请求头,会爬取到错误信息。
        headers = {
            "Accept": "application/json, text/javascript, */*; q=0.01",
            "Connection": "Keep-Alive",
            "Cookie": "UM_distinctid = 17154aac73f61a - 066a45574b4ee1 - 71415a3a - e1000 - 17154aac743402;CNZZDATA1256573702 = 396385065 - 1586261257 - % 7C1586261257",
            "Host": "fy.iciba.com",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"
        }
        # 发送请求,得到服务器的响应,即翻译的结果
        # json格式可以解析爬取的中文文本
        response = requests.post(url, data=data, headers=headers).json()
        # 将翻译的结果插放在entry的后面
        Var.set(response['content']['out'])
        return

def delete():
    # 若用户点击按键,则删除entry中全部内容
    Var.set('')
    
def instructions():
# messagebox的的简单使用
    messagebox.showinfo('软件说明', message="这个是根据爬取词霸翻译结果的原理制作的python桌面小软件,方便翻译一些比较简短的内容。软件用python程序制作,设计比较简单,处于试验阶段,尚有许多不足之处。")

# 下面是tkinter制作的简单gui用户界面
window = Tk()
window.title('翻译软件')
window["bg"] = "pink"

label1 = Label(window, text="请输入你要翻译的内容")
label1.grid()

text = Text(window, font=('微软雅黑', 12), width=50, height=10)
text.grid(row=1, column=0)

label2 = Label(window, text="翻译的结果")
label2.grid(row=2, column=0)

Var = StringVar()
entry = Entry(window, font=('微软雅黑', 12), textvariable=Var)
entry.grid(row=3, column=0)

# 点击button1会执行翻译的功能。
button1 = Button(window, text='Translate', width=10, command=translate)
button1.grid(row=4, column=0)

# 点击button2会执行清空翻译结果
button2 = Button(window, text='Delete', width=10, command=delete)
button2.grid(row=5, column=0)

#点击button3会弹出提示界面。
button3 = Button(window, text='About', width=10, command=instructions)
button3.grid(row=6, column=0)

# 禁止用户改变软件界面的大小
window.resizable(0, 0)
window.mainloop()

运行该翻译程序,出现如下图所示的界面。
基于python爬虫原理的桌面翻译小软件

下面结束将python程序打包成.exe可执行文件:
①先将要打包的python程序(我的是gui.py文件)存到一个文件夹:
基于python爬虫原理的桌面翻译小软件
②同时点击鼠标右键和Shift键,然后点击[在此处打开Powershell窗口(S)]:
基于python爬虫原理的桌面翻译小软件③在弹出的窗口运行命令:Pyinstaller -F -w gui.py。Pyinstaller是用来打包python文件的,-F的作用是在生成的dist文件夹里只生成一个可执行文件exe,减少文件多带来的复杂性。-w的作用运行文件时不需要命令行窗口(一个黑色的窗口)。后面是需要打包的python程序文件名并加上后缀.py。
基于python爬虫原理的桌面翻译小软件
最后运行成功即说明打包成功。生成的可执行文件就在dist的文件夹里面。
基于python爬虫原理的桌面翻译小软件
双击即可运行,于是就可以实现翻译功能,享受python制作桌面小软件过程的乐趣了。但是python不是为了制作软件而生的,若想学习专门制作软件的知识,应该去学习其他专门的语言。