码迷,mamicode.com
首页 > 编程语言 > 详细

Python制作有道翻译小工具

时间:2019-10-19 17:39:48      阅读:424      评论:0      收藏:0      [点我收藏+]

标签:可视化   you   target   smart   ansi   ext   doctype   url   loop   

该工具主要是利用了爬虫,爬取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()

以下是运行结果:

技术图片

 

Python制作有道翻译小工具

标签:可视化   you   target   smart   ansi   ext   doctype   url   loop   

原文地址:https://www.cnblogs.com/lesliechan/p/11704550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!