如何基于Python制作有道翻译小工具


Posted in Python onDecember 16, 2019

这篇文章主要介绍了如何基于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,0, anchor='nw', image=image_file)#将图片置于画布上
canvas.place(x=50,y=210)#放置画布(为上端)
window.mainloop()

以下是运行结果:

如何基于Python制作有道翻译小工具

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
Python中类的初始化特殊方法
Dec 01 Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
tensorflow更改变量的值实例
Jul 30 Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
Python执行时间的几种计算方法
Jul 31 Python
如何使用pdb进行Python调试
Jun 30 Python
django框架单表操作之增删改实例分析
Dec 16 #Python
Python生成个性签名图片获取GUI过程解析
Dec 16 #Python
Python列表切片常用操作实例解析
Dec 16 #Python
python之pymysql模块简单应用示例代码
Dec 16 #Python
python装饰器使用实例详解
Dec 14 #Python
python函数不定长参数使用方法解析
Dec 14 #Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 #Python
You might like
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
各种快递查询--Api接口
2016/04/26 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python sort、sort_index方法代码实例
2019/03/28 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
干部培训简讯
2015/07/20 职场文书
团委副书记工作总结
2015/08/14 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
asyncio异步编程之Task对象详解
2022/03/13 Python
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android
浅析JavaScript中的变量提升
2022/06/01 Javascript
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技