基于Python3.6写的自助翻译小软件--使用google translate的接口,用Python爬取 谷歌翻译的数据,并打包成.exe的可执行文件

看文献看的头疼,为了解决小麻烦没事就写了这个来玩一玩。其实也没有什么就是用一个简单的爬虫和界面,

所以啥也不多说,直接贴代码,欢迎尝试

# -*- coding: utf-8 -*-
# filename:GoogleTranslation1.2.py

import urllib.parse
import urllib.request
import time
import pyperclip
from tkinter import *

def translate(text, f='zh-cn', t='en'):
    url_google = 'http://translate.google.cn/translate_t'
    reg_text = re.compile(r'(?<=TRANSLATED_TEXT=).*?;')
    user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' \
                 r'Chrome/44.0.2403.157 Safari/537.36'
    '''user_agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)'''''
    values = {'hl': 'zh-cn', 'ie': 'utf-8', 'text': text, 'langpair': '%s|%s' % (t, f)}
    value = urllib.parse.urlencode(values)

    req = urllib.request.Request(url_google + '?' + value)

    req.add_header('User-Agent', user_agent)
    response = urllib.request.urlopen(req)
    content = response.read().decode('utf-8')
    data = reg_text.search(content)
    result = data.group(0).strip(';').strip('\'')
    return result

def getcopytext(copyBuff):

  copyedText=pyperclip.paste()
  if copyBuff!=copyedText:
      copyBuff=copyedText
      normalizedText=copyBuff.replace('\r','\\r').replace('\n','\\n').replace('-\\r\\n','').replace("\\r\\n"," ")
  else:
      print('no change')
  return normalizedText

def showtxt(inputtxt):
    root = Tk()

    root.title('DayDayUp')  # 定义窗体标题
    root.geometry('400x200')  # 定义窗体的大小,是400X200像素
    label = Label(root,text=inputtxt,wraplength=400,justify='left',font=12)
    #label['text'] = inputtxt
    label.pack()
    root.mainloop()


if __name__ == "__main__":
    copyBuff = ' '
    # text_1 原文
    # text_1=open('c:\\text.txt','r').read()
    while True:
      time.sleep(0.003)
      copyedText = pyperclip.paste()
      if copyBuff!=copyedText:
        copyBuff=copyedText
        text_1 = copyBuff.replace('\r', '\\r').replace('\n', '\\n').replace('-\\r\\n', '').replace("\\r\\n",                                                                                                  " ")
        text_2 = translate(text_1)#.strip("'")
        showtxt(text_2)

实现的功能:运行程序后,直接选中要翻译的内容,复制,然后就直接自动读取粘贴板上的内容,自动翻译并显示在界面上,不需要输入,直接自动输出。

打包的过程:

1.安装pyinstaller:

pip install pyinstaller

2.CMD进入要转化的项目的xxx.py所在的目录下,执行如下命令:

pyinstaller -F -w  ***.py
-F:打包为单文件

-w:Windows程序,不显示命令行窗口

***.py是你要打包的py文件

当然你还可以把文件打包成使用自己的图标的文件,执行如下:

pyinstaller -F -w -i manage.ico ***.py

-i:是程序图标

大功告成

下面是效果图



猜你喜欢

转载自blog.csdn.net/WilsonSong1024/article/details/80299335