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

标签: 数据分析  python  爬虫  tkinter

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

版权声明:本文为weixin_46824122原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46824122/article/details/105375554