1. 程式人生 > >基於Python3.6寫的自助翻譯小軟體--使用google translate的介面,Python實現爬取google翻譯API結果,並打包成.exe的可執行檔案

基於Python3.6寫的自助翻譯小軟體--使用google translate的介面,Python實現爬取google翻譯API結果,並打包成.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:是程式圖示

大功告成

下面是效果圖