如何基于Python制作有道翻譯小工具
這篇文章主要介紹了如何基于Python制作有道翻譯小工具,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
該工具主要是利用了爬蟲,爬取web有道翻譯的內(nèi)容. 然后利用簡(jiǎn)易GUI來可視化結(jié)果。
首先我們進(jìn)入有道詞典的首頁(yè),并點(diǎn)擊翻譯結(jié)果的審查元素
之后request響應(yīng)網(wǎng)頁(yè),并分析網(wǎng)頁(yè),定位到翻譯結(jié)果。
使用tkinter來制作一個(gè)建議的GUI
期間遇到的一個(gè)問題則是如何刷新翻譯的結(jié)果,否則的話會(huì)在text里一直累加翻譯結(jié)果。
于是,在mainloop里面用到了T1.delete方法,來每次刪除TEXT里的內(nèi)容。
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='請(qǐng)輸入翻譯內(nèi)容:',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='請(qǐng)輸入要翻譯內(nèi)容')
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)#創(chuàng)建畫布
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()
以下是運(yùn)行結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python爬蟲爬取有道實(shí)現(xiàn)翻譯功能
- python 簡(jiǎn)單的調(diào)用有道翻譯
- python調(diào)用有道智云API實(shí)現(xiàn)文件批量翻譯
- 基于python爬取有道翻譯過程圖解
- Python 調(diào)用有道翻譯接口實(shí)現(xiàn)翻譯
- 用python3 urllib破解有道翻譯反爬蟲機(jī)制詳解
- Python 20行簡(jiǎn)單實(shí)現(xiàn)有道在線翻譯的詳解
- 詳解Python3網(wǎng)絡(luò)爬蟲(二):利用urllib.urlopen向有道翻譯發(fā)送數(shù)據(jù)獲得翻譯結(jié)果
- Python3.6實(shí)現(xiàn)帶有簡(jiǎn)單界面的有道翻譯小程序
- python 實(shí)現(xiàn)有道翻譯功能
相關(guān)文章
python利用wx實(shí)現(xiàn)界面按鈕和按鈕監(jiān)聽和字體改變的方法
今天小編就為大家分享一篇python利用wx實(shí)現(xiàn)界面按鈕和按鈕監(jiān)聽和字體改變的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python腳本如何在bilibili中查找彈幕發(fā)送者
這篇文章主要介紹了如何在bilibili中查找彈幕發(fā)送者,本文給大家分享小編寫的一個(gè)python腳本來實(shí)現(xiàn)bilibili彈幕發(fā)送者,需要的朋友可以參考下2020-06-06
python email smtplib模塊發(fā)送郵件代碼實(shí)例
本篇文章給大家分享了python email smtplib模塊發(fā)送郵件的相關(guān)代碼分享,有需要的朋友參考學(xué)習(xí)下。2018-04-04

