lesliechan

该工具主要是利用了爬虫,爬取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,0, anchor=\'nw\', image=image_file)#将图片置于画布上
canvas.place(x=50,y=210)#放置画布(为上端)



window.mainloop()

以下是运行结果:

 

分类:

技术点:

相关文章: