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()

以下是运行结果:

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

时间: 2024-11-08 08:28:36

Python制作有道翻译小工具的相关文章

Python学习之旅:用Python制作一个打字训练小工具

一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码. 然而现实中的程序员呢?对于很多程序员来说,没有百度和 Google 解决不了的问题,也没有 ctrl + c 和 ctrl + v 实现不了的功能. 那么身为一个程序员,要怎么让自己看起来更加“专业”呢?答案就是加快自己的打字速度了,敲的代码可能是错的,但这个13却是必须装的! 然而还是有不少人

python制作英语翻译小工具

用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() i=input('请问你要翻译什么?') url='http://fanyi.youdao.com/translate' headers={ 'Referer': 'http://fanyi.youdao.com/', 'User-Agent': 'Mozilla/5.0 (Macintosh;

Python实现翻译小工具

一.背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面. 二.代码 fanyi.py代码如下: #!/bin/env python # -*- coding:utf-8 -*- # _author:kaliarch import requests import urllib.parse import time import random import hashlib import json clas

python制作查找单词翻译的脚本

本人由于英语渣,在linux底下经常看文档,但是有没有想有道词典这种软件,所以遇到不懂的单词只能手动复制粘贴在网上查找,这样就很不方便,学了python之后,就试着自己尝试下个在命令行下查找单词翻译的脚本. 在我眼里,实现上面这个要求的脚本语言分几块完成: 一是选好一个单词翻译的网站,优先选择GET方法的(代码写起来比较方便),如果是POST方法也不是没有办法,只是要自己新建一个POST请求,为此我就找到了一个用GET方法查找单词的神器网站——在线翻译_在线词典_金山词霸_爱词霸英语,用起来就很

【Python】Python利用有道翻译开发API应用示例

Python源码是关于Python利用有道翻译开发API应用示例.这是一个很有意思又简单的API应用练习题,方法中用到了有道词典开放API应用,合成的类似于命令行词典应用Python小程序.功能简单,但效果却很好. 这里要注意的是:有道API的请求频率限制,限制频率为每小时1000次,如果超过限制会被封禁. 提示:如果想一直用这个可以自己申请一个KEY,申请的过程非常简单的,只要替换原有的KEY_FROM和KEY就可以了. Python利用有道翻译开发API应用示例,源码如下: #!/usr/b

C#借助谷歌翻译实现翻译小工具(一)基本功能实现

软件效果: 实现原理很简单,就是封装谷歌翻译网站:http://translate.google.cn/,一个WebBrowser"肢解"谷歌翻译网站的HtmlElement元素,删除不要的,留下需要的就是了,没什么难度 实现步骤: 一个winform窗体+一个WebBrowser控件   设置WebBrowser的URL为谷歌翻译网站,删除不需要的html元素 全部代码: public partial class Form1 : Form { public Form1() { Ini

Python - 开发截图识别OCR小工具

一.简介 你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率. 今天,我们就来做一款实时截图识别的小工具.顾名思义,运行程序时,可以实时把你截出来的图片中的文字识别出来. 二.模块 import keyboard # 用于监控键盘按下,触发事件(pip install keyboard) import time from aip import AipOcr # 调用百度接口(pip install baidu-aip) from PIL import ImageGrab

用 pyqt4 编写的一个翻译小工具

有时候我们在开发时遇到一些陌生的英文单词或者不容易看出某些长句的中文意思时该怎么办呢?打开桌面上的翻译软件?打开浏览器里收藏着的翻译网址或者直接贴上百度的搜索框去查?这些方法固然可以,还很常见,但如果是 linux 系统的话,很难找到像 windows 上那些公司级别来开发的成熟的翻译软件,所以只能打开浏览器来查了.浏览器一般都会装上一些翻译插件,比如我常用的 chrome 的 划词翻译,直接用这些插件来进行翻译比起打开一个翻译网站或者百度google搜索要更快,毕竟因为加载的内容更少,但这终究

python爬有道翻译

在有道翻译页面中打开开发者工具,在Headers板块找到Request URL以及相应的data. import urllib.request import urllib.parse import json content=input('请输入需要翻译的内容:') #_o要去掉,否则会出先error_code:50的报错 url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' data={} #开发者工具