Python利用PySimpleGUI实现自制桌面翻译神器

目录
  • 一、基本思路
  • 二、PySimpleGUI是什么
  • 三、代码分析
    • 1、引入包
    • 2、谷歌翻译网址
    • 3、构建翻译函数
    • 4、GUI构建
  • 四、Github开源地址

一、基本思路

基于PySimpleGUI开发桌面GUI→获取键盘输入→接入谷歌翻译API→爬虫获取翻译结果【其中涉及到正则表达式匹配翻译结果输出翻译结果口翻译完成。

二、PySimpleGUI是什么

创建图形用户界面(GUI)可能很困难,有许多不同的PythonGUI工具包可供选择。最常提到的前三名是 Tkinter,wxPython和PyQt .但是PySimpleGUI的较新工具包,其目的是使创建GUI更加容易。

三、代码分析

废话不能多,上分析!

1、引入包

可能有点儿多,但是下面的每一个包都必须用pip安装:

from optparse import Values
import re
import html
from tkinter import font
from urllib import parse
import requests
import PySimpleGUI as sg

2、谷歌翻译网址

该处使用的ur网络请求的数据,这里用到了字符串格式化方法需要用到三个参数:

text—需要翻译的内容、to_language—日标语音类型、text_Language—当前话言类型。

url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s'

3、构建翻译函数

def translate(text, to_language="en", text_language="auto"):
    text = parse.quote(text)
    urll = url % (text, to_language ,text_language)
    response = requests.get(urll)
    data = response.text
    expr = r'(?s)class = "(?:t0|result-container)">(.*?)<'
    result = re.findall(expr, data)
    print (result)
    if (len(result) == 0):
        return ""
    return html.unescape(result[0])

4、GUI构建

g.theme('bluepurple')
font = {"fangsong", 12}
menu = [["Help", ["About", "Item", "Author"]]]
value = ['汉语', '英语', '日语', '法语', '俄语', '自动']

var = ['zh', 'en', 'ja', 'fr', 'ru', 'auto']
dic = dict(zip(value, var))
layout = [[sg.Menu(menu, tearoff = False)],
          [sg.Text(text='Input', size=(26, 1)),
           sg.Text(text='将', size=(2, 1), justification='center'),
           sg.Combo(values=value, key='from', size=(10, 1)),
           sg.Text(text='翻译为', size=(5, 1), justification='center'),
           sg.Combo(values=value, key='to', size=(10, 1))],
          [sg.Multiline(key='-IN-', size=(60, 0), font=font)],
          [sg.Text(text='Output', size=(30, 1))],
          [sg.Multiline(key="-OUT-", size=(60, 8), font=font)],
          [sg.Text(text='', size=(36, 1)),
           sg.Button("翻译", size=(6, 1)),
           sg.Button("清除", size=(6, 1)),
           sg.Button("退出", size=(6, 1))]
          ]

window = sg.Window("自制桌面翻译器", layout, icon="CT.ico")

while True:
    event, value = window.read()
    if event in (None, "退出"):
        break
    if event == "翻译":
        if Values["to"] == '' or Values["from"] == '':
            sg.Popup("请尝试选择语言类型后尝试,谢谢!")
        else:
            tar = translate(Values["-IN-"], dic[Values["to"]], dic[Values["from"]])
            window["-OUT-"].Update(tar)
    if event == "清除":
        window["-IN-"].Update("")
        window["-OUT-"].Update("")
    if event == "About":
        sg.Popup("使用方法:",
                 "'翻译'确认输入,并输出翻译结果"
                 "'清除'清除已有输入,清空翻译结果",
                 "'退出'取消,并退出App", title='', font=font, auto_close=1)
    if event == "Item":
        sg.Popup("翻译类型:",
                 "'输入类型'输入的语言类型",
                 "'输出类型',输出语言类型", title='', font=font, auto_close=1)
    if event == "Author":
        sg.Popup("作者简介:",
                 "姓名:刘镇鸣",
                 "微信/电话:17734258540",
                 "E-mail:2124619132@qq.com", title='', font=font, auto_close=1)
window.close()

四、Github开源地址

Github开源地址:https://github.com/ProgramApeInn/PySimpleGUI-Root-App

到此这篇关于Python利用PySimpleGUI实现自制桌面翻译神器的文章就介绍到这了,更多相关Python PySimpleGUI桌面翻译内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-09-19

python接入使用百度翻译流程

目录 一.分析网页 二.使用步骤 1.导入库 2.键盘输入内容 3.构建url/headers/data参数 4.发起请求响应数据 5.解析数据输出结果 三.完整代码 一.分析网页 1. 打开网页,在搜索框输入百度翻译并进入百度翻译网站中.F12调出开发者工具,点击Network(网络)\ Fetch/XHR,同时在翻译框中任意输入搜索内容,此时就会发现有一个名称为sug的包.点击该包,点击后会看到有Heders.Payload.Preview和Rsponse等选项.点击Heders选项,将Re

基于Python3编写一个GUI翻译器

目录 1.引言 2.代码实战 2.1 思路 2.2 实战 3.总结 1.引言 小屌丝:鱼哥,你说百度翻译的准确,还是google翻译的准确? 小鱼:自己翻译的最准确. 小屌丝:你这… 抬杠. 小鱼:没有啊,英语自己就能翻译,还需要啥翻译软件 小屌丝:如果是俄语,意大利语,西班牙语呢? 小鱼:你这是…抬杠. 小屌丝:也没有啊,我就是觉得网页版翻译器太麻烦了. 小鱼:早说啊,我这有现成的翻译器. 小屌丝:嗯?? 你下载的是什么翻译器? 小鱼:你觉得我会下载吗? 小屌丝:嗯,确实,那就是说,你自己写了

python使用PySimpleGUI设置进度条及控件使用

PySimpleGUI 使用起来感觉比tkinter要方便,当然我也没怎么用过这两者.只是学习模拟一下任务进度完成情况. 安装 pip install PySimpleGUI 一.简单进度条使用 PySimpleGUI有一个一条命令即可展示进度条的控件.one_line_progress_meter import time import PySimpleGUI as sg if __name__ == '__main__': sg.one_line_progress_meter('进度条标题',

Python 库 PySimpleGUI 制作自动化办公小软件的方法

目录 1 PySimpleGUI安装 2 PySimpleGUI制作简易弹窗界面 2.1 两种界面设计模式 2.2 制作弹窗 2.3 文字内容弹窗 2.4 获取用户输入的弹窗 2.5 文件选择弹出窗口 2.6 文件夹选择窗口 2.7 进度条弹窗 3 制作简易压缩软件 3.1 功能需求 3.2 功能拆解 3.3 全部代码 Python 在运维和办公自动化中扮演着重要的角色,PySimpleGUI 是一款很棒的自动化辅助模块,让你更轻松的实现日常任务的自动化. 1 PySimpleGUI安装 在命令

一个非常简单好用的Python图形界面库(PysimpleGUI)

前一阵,我在为朋友编写一个源代码监控程序的时候,发现了一个 Python 领域非常简单好用的图形界面库. 说起图形界面库,你可能会想到 TkInter.PyQt.PyGUI 等流行的图形界面库,我也曾经尝试使用,一个很直观的感受就是,这太难用了.就去网上搜搜,看看有没有一些 demo,拿来改改,结果很少有,当时我就放弃了这些图形库的学习,转而使用了 vue+flask 的形式以浏览器网页作为程序界面,因为我会这个,即使实现起来稍微麻烦,但是也快. 那有朋友可能问了:一定要学习图形界面吗? 其实不

Python爬取百度翻译实现中英互译功能

目录 基础步骤 提交表单 获取响应并处理结果 消除警告 main.py sign.py 由于下学期报了一个Python的入门课程 所以寒假一直在自己摸索,毕竟到时候不能挂科,也是水水学分 最近心血来潮打算试试爬一下百度翻译 肝了一天终于搞出来了 话不多说,直接开搞(环境是Python 3.8 PyCharm Community Edition 2021.3.1) 基础步骤 百度翻译会识别到爬虫,所以得用headers隐藏一下 以chorme浏览器为例 在百度翻译页面点击鼠标右键,选择“检查”(或

Python使用requests模块爬取百度翻译

requests模块: python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高. 作用:模拟浏览器发请求. 提示:老版使用 urllib模块,但requests比urllib模块要简单好用,现在学习requests模块即可! requests模块编码流程 指定url 1.1 UA伪装 1.2 请求参数的处理 2.发起请求 3.获取响应数据 4.持久化存储 环境安装: pip install requests 案例一:破解百度翻译(post请求) 1.代码如下: #爬取百度翻

python爬取百度贴吧前1000页内容(requests库面向对象思想实现)

此程序以李毅吧为例子,以面向对象的设计思想实现爬取保存网页数据,暂时并未用到并发处理,以后有机会的话会加以改善 首先去百度贴吧分析贴吧地址栏中url后的参数,找到分页对应的参数pn,贴吧名字对应的参数kw 首先创建类,写好__init__方法,run方法,__init__方法里先可以直接写pass run方法里大概整理一下整体的思路 构造 url 列表,因为要爬取1000页,每页需对应一个url 遍历发送请求,获取响应 保存 将可封装的步骤封装到单独的方法,所以这里又增加了三个方法 get_ur

python爬虫之爬取百度音乐的实现方法

在上次的爬虫中,抓取的数据主要用到的是第三方的Beautifulsoup库,然后对每一个具体的数据在网页中的selecter来找到它,每一个类别便有一个select方法.对网页有过接触的都知道很多有用的数据都放在一个共同的父节点上,只是其子节点不同.在上次爬虫中,每一类数据都要从其父类(包括其父节点的父节点)上往下寻找ROI数据所在的子节点,这样就会使爬虫很臃肿,因为很多数据有相同的父节点,每次都要重复的找到这个父节点.这样的爬虫效率很低. 因此,笔者在上次的基础上,改进了一下爬取的策略,笔者以

Python爬虫实现爬取百度百科词条功能实例

本文实例讲述了Python爬虫实现爬取百度百科词条功能.分享给大家供大家参考,具体如下: 爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件.爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列.然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页

利用python批量爬取百度任意类别的图片的实现方法

利用python批量爬取百度任意类别的图片时: (1):设置类别名字. (2):设置类别的数目,即每一类别的的图片数量. (3):编辑一个txt文件,命名为name.txt,在txt文件中输入类别,此类别即为关键字.并将txt文件与python源代码放在同一个目录下. python源代码: # -*- coding: utf-8 -*- """ Created on Sun Sep 13 21:35:34 2020 @author: ydc """

python爬取51job中hr的邮箱

本文实例为大家分享了python爬取51job中hr的邮箱具体代码,供大家参考,具体内容如下 #encoding=utf8 import urllib2 import cookielib import re import lxml.html from _ast import TryExcept from warnings import catch_warnings f = open('/root/Desktop/51-01.txt','a+') def read(city): url = 'ht

Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例

本文实例讲述了Python实现爬取百度贴吧帖子所有楼层图片的爬虫.分享给大家供大家参考,具体如下: 下载百度贴吧帖子图片,好好看 python2.7版本: #coding=utf-8 import re import requests import urllib from bs4 import BeautifulSoup import time time1=time.time() def getHtml(url): page = requests.get(url) html =page.text

Python实现的爬取百度贴吧图片功能完整示例

本文实例讲述了Python实现的爬取百度贴吧图片功能.分享给大家供大家参考,具体如下: #coding:utf-8 import requests import urllib2 import urllib ``` from lxml import etree class Tieba: def __init__(self): self.tiebaName = raw_input("请输入需要爬取的贴吧:") self.beginPage = int(raw_input("请输入

python实现爬取百度图片的方法示例

本文实例讲述了python实现爬取百度图片的方法.分享给大家供大家参考,具体如下: import json import itertools import urllib import requests import os import re import sys word=input("请输入关键字:") path="./ok" if not os.path.exists(path): os.mkdir(path) word=urllib.parse.quote(w

Python实现的爬取百度文库功能示例

本文实例讲述了Python实现的爬取百度文库功能.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- from selenium import webdriver from bs4 import BeautifulSoup from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH# 用来居中显示标题 from time import sleep from selenium.webd