前言
基于python爬虫方面,我们能做很多事,这里,我们先找到百度翻译的接口,然后自己构建逻辑,实现建议窗口汉语翻译英语功能。
一、思路梳理
1.分析翻译数据返回逻辑
2.构建js代码,(未在本文中,需要的话评论区留言,看到即回)
3.构建弹窗页面及翻译逻辑
二、思路3的文件代码展示
1.引入库
import tkinter as tk #制作Gui界面模块
import execjs # 读取编译调用js文件模块
import requests # 向网页发送请求获取数据模块
代码如下(示例):
import tkinter as tk
import execjs
import requests
root = tk.Tk( )
root.title('翻译')
root.geometry("500x300+500+250")
text_1 = tk.Text(root, width=50, height=5)
text_1.pack( )
def get_text():
t_1 = text_1.get(1.0, tk.END)
# print(t_1)
return t_1
def read_data(data):
with open('百度翻译.js', 'r', encoding='utf-8') as f:
da = f.read( )
compile_obj = execjs.compile(da)
result = compile_obj.call('e', data)
return result
def get_response(datas):
url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'
try:
data = {
'from': 'zh', # 可改en
'to': 'en', # 可改zh
'query': get_text(),
'transtype': 'realtime',
'simple_means_flag': '3',
'sign': datas,
'token': 'a6abf59616c25dcdcaa262792201a405',
'domain': 'common',
}
headers = {
'Acs-Token': '1660287615129_1660357230304_SE+8Vutz/+xDfhHlNTX11Q5kcgoKISVEIe3SKT1Bgt0dagrXBuMgkNbWX7UBDRGog3gP+rCgr2J3mQ0RM8kr5Fn228UMbwIlz/4LxQXgA1Mg7/CTQznS2O6naNmQnSuFzwJpbb5XmVJUytbU3lfeflxRUw+bslZCZ3JyMP4SMxtOXaMybRt6AJlrJkO/3FAbn2CCevJKCoILwwZ0UQy9sAGVHUQkclJpWv6pt9guvfveB6KKyLox4986jtzQazmDh+UuMv4OXzuN129siaQVomZ8NRNA4fR6Wzz/eHwN3HQtmJkyBWAIaIJ0Fh00udN9ZWHuUd5eAfs0bvRmfz1Xccs6YuLrIkGcUMpLrh8+ZB4=',
'Cookie': 请添加自己的cookie,
'Host': 'fanyi.baidu.com',
'Origin': 'https: // fanyi.baidu.com',
'Referer': 'https: // fanyi.baidu.com /?aldtype = 16047',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}
response = requests.post(url=url, data=data, headers=headers).json( )
# print(response)
# print(response['trans_result']['data'][0]['dst'])
x = response['trans_result']['data'][0]['dst']
return x
except:
get_response(datas)
def main():
h = get_text()
r = read_data(h)
l = get_response(r)
text_2.delete(0.0, tk.END)
text_2.insert(tk.INSERT, l)
btnRead = tk.Button(root, height=1, width=10, text="翻译", command=main)
btnRead.pack( )
text_2 = tk.Text(root, width=50, height=10)
text_2.pack( )
root.mainloop( )
以上只支持汉译英,想要英译汉就需要改里面所标注的。
总结
这块只是简单的单方面翻译,想要源码的到评论区私信我,有修改想法的可以对照修改。