1. 程式人生 > 程式設計 >如何基於Python製作有道翻譯小工具

如何基於Python製作有道翻譯小工具

這篇文章主要介紹瞭如何基於Python製作有道翻譯小工具,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

該工具主要是利用了爬蟲,爬取web有道翻譯的內容. 然後利用簡易GUI來視覺化結果。

首先我們進入有道詞典的首頁,並點選翻譯結果的審查元素

之後request響應網頁,並分析網頁,定位到翻譯結果。

使用tkinter來製作一個建議的GUI

期間遇到的一個問題則是如何重新整理翻譯的結果,否則的話會在text裡一直累加翻譯結果。

於是,在mainloop裡面用到了T1.delete方法,來每次刪除TEXT裡的內容。

import urllib.request
import urllib.parse
import json
import tkinter as tk
from tkinter import *

from tkinter import messagebox

window = tk.Tk()
window.geometry('600x400+200+200')
window.title("有道詞典翻譯")
L1=tk.Label(window,text='請輸入翻譯內容:',font=('楷體',20),fg='blue')
L1.place(x=30)
E1=tk.Entry(window,text="",font=('宋體',16),width=30)
E1.place(x=80,y=50)
def transit():
  T1.delete(1.0,tk.END)
  var = E1.get()
  if var == '':
    messagebox.showinfo('提示',message='請輸入要翻譯內容')
  else:

    data = {
      'i': var,'from': 'AUTO','to': 'AUTO','smartresult': 'dict','client': 'fanyideskweb','salt': '15619904887064','sign': 'a14ab29954353efd9d6aa92ebd94aa62','ts': '1561990488706','bv': '3a019e7d0dda4bcd253903675f2209a5','doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_CLICKBUTTION'
    }
    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

    data = urllib.parse.urlencode(data).encode('utf-8')
    response = urllib.request.urlopen(url,data)
    html = response.read().decode('utf-8')

    #print(html)
    target=json.loads(html)
    #print(target)
    #a=target['translateResult'][0][0]
    #print(a)
    b=target['translateResult'][0][0]['tgt']
    #print(b)
    T1.insert('end',b)



T1=tk.Text(window,height=4)
T1.place(x=20,y=130)

B1=tk.Button(window,text='TransLate it',width=10,height=3,fg='red',command=transit)
B1.place(x=500,y=30)

canvas = tk.Canvas(window,height=160,width=500)#建立畫布
image_file = tk.PhotoImage(file="cat.gif")#載入圖片檔案
image = canvas.create_image(0,anchor='nw',image=image_file)#將圖片置於畫布上
canvas.place(x=50,y=210)#放置畫布(為上端)
window.mainloop()

以下是執行結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。