【调用百度翻译接口实现简单窗口的汉译英】

2023-11-13

与百度翻译同种方法实现简单窗口的汉译英


前言

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

以上只支持汉译英,想要英译汉就需要改里面所标注的。


总结

这块只是简单的单方面翻译,想要源码的到评论区私信我,有修改想法的可以对照修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【调用百度翻译接口实现简单窗口的汉译英】 的相关文章

随机推荐