赞
踩
- import tkinter as tk
- import urllib.request
- import urllib.parse
- import json
- from tkinter import *
-
- # 定义翻译函数
- def translate():
- # 获取输入文本
- text = input_text.get('1.0', 'end').strip()#strp()去除空格
- # 判断文本是否为空
- if not text:
- output_text.delete('1.0', 'end')
- return
- """这段代码是一个Python程序,主要是向百度翻译的API发送请求,并获取响应数据。具体意思如下:
- 1. 定义了一个变量url,存储了要访问的API地址。
- 2. 定义了一个变量data,存储了要发送的数据。其中,'kw'是API要求的参数名,text是要翻译的文本内容。
- 3. 对data进行编码,将其转换成二进制格式,以便于发送请求。
- 4. 定义了一个变量headers,存储了请求头信息。其中,'User-Agent'是告诉API这个请求是从什么设备、什么浏览器发出的。
- 5. 创建了一个Request对象req,将url、data和headers作为参数传递进去。
- 6. 使用urllib.request.urlopen()函数发送请求,并将响应数据存储在response变量中。
- 7. 读取响应数据,使用decode()函数将其从二进制格式转换成字符串格式,并存储在变量html中。"""
- # 调用百度翻译API接口
- url = 'https://fanyi.baidu.com/sug'
- data = {'kw': text}
- """创建一个HTTP请求对象`req`,其中包括URL链接`url`、数据`data`和请求头`headers`。`headers`是一个字典,其中`User-Agent`键指定了请求的浏览器代理,这里使用的是Mozilla/5.0。这个请求对象可以被传递给urllib.request.urlopen()函数来发送请求并获取响应。"""
- data = urllib.parse.urlencode(data).encode('utf-8')
- headers = {'User-Agent': 'Mozilla/5.0'}
- req = urllib.request.Request(url, data, headers)
- response = urllib.request.urlopen(req)
- html = response.read().decode('utf-8')
-
- # 解析返回的JSON数据
- """该代码先将一个名为html的JSON字符串解析为Python对象
- 然后从该对象中获取'data'键的值,该值应该是一个列表。接着,该代码从该列表中获取第一个元素
- 然后从该元素中获取'v'键的值,存储在名为result的变量中
- 因此,result变量是JSON数据中'data'列表的第一个元素的'v'键的值。"""
- data = json.loads(html)
- result = data['data'][0]['v']
-
- # 输出翻译结果
- output_text.delete('1.0', 'end')
- output_text.insert('end', result)
- #定义清空函数
- def clear():
- #删除文本内容
- input_text.delete("1.0",tk.END)
- output_text.delete("1.0",tk.END)
- # 创建窗口
- window = tk.Tk()
- window.title('百度翻译')
- window.geometry('800x400')
-
- # 创建输入框和输出框
- input_text = tk.Text(window, font=('Arial', 14), height=1,width=25)
- lable=tk.Label(window,text="请输入中文单词")
- input_text.pack(pady=10)
-
- output_text = tk.Text(window, font=('Arial', 14), height=1,width=25)
- lable1=tk.Label(window,text="翻译结果")
- output_text.pack(pady=10)
- lable.place(x=100,y=10)
- lable1.place(x=125,y=60)
- bm=PhotoImage(file=r"C:\Users\86135\Pictures\phonto\6af9e7ccd2094b8fadea2fa063c5692c (1).gif")
- lab1=Label(window,image=bm,compound="center")
- lab1.bm=bm
- lab1.place(x=50 ,y=150)
- f=Frame(window,height=200,width=200)
- lab2=Label(f,text="欢迎使用百度翻译",font=14)
- x=0
- def foo():
- global x
- x=x+10
- if x>200:
- x=0
- lab2.place(x=x,y=0)
- f.after(500,foo)
- f.pack()
- f.after(500,foo)
- # 创建翻译键
- translate_button = tk.Button(window, text='翻译', font=('Arial', 14), command=translate)
- translate_button.place(x=350,y=200)
- #创建清空键
- clear_button = tk.Button(window,text="清空",font=("Arial",14),command=clear)
- clear_button.place(x=410,y=200)
- # 运行窗口
- window.mainloop()
这个代码是利用百度翻译的公共API接口,这个接口与需要申请的接口的区别是,这个接口的访问次数是有限制的,而自己申请的是没有任何限制
下面告诉大家如何注册百度翻译api接口的密钥
登录以上网站,点击右上方的注册即可
注册完后,鼠标移动到电话号码哪儿去
点击开发者信息
点开个人开发者——企业开发者要钱的,我这边不建议
注册完后,出现这个页面即成功
最后返回首页,点击个人开发者信息,就会出现
完美收工,下期见
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。