Python3 + wxpython写的一个翻译工具

3 篇文章 0 订阅

Python3 + wxpython写的一个翻译工具


学习日语一直有一个问题,有些时候我们看到一句话,可能大致上能猜出来是什么意思,但是日语汉字却不知道怎么去读。我就有这样的烦恼,极大的降低了我对日语学习的热情。
于是这两天在公司闲暇之余,就想利用网上的api做一个日语汉字翻译假名的一个小工具。

一开始我想用百度翻译的api,因为百度翻译有一个显示日语假名的按钮可以查看。但是看起来很简单的api,却不知道为什么硬是拿不到翻译结果。回去用百度翻译默认的参数成功了,但是换了个关键字又无法获取。

其实就算成功了,也不太符合我的要求。因为百度翻译要能显示假名,必须得由某种语言翻译成日语,又不能同时选中日语,从心底里来说,我已经不愿意再多花时间去研究了。

于是我开始想着用python爬虫去实现,有道翻译,谷歌翻译,都没有显示假名的功能。天无绝人之路,我看到了江沪小D的单词翻译,下边正好显示了假名。
在这里插入图片描述
打开文本翻译,虽然没有显示假名的功能,但是后台有我想要的数据,还能选择日语到日语,这真的是让我喜出望外。不说了,开工!
在这里插入图片描述

一、分析请求

python爬虫最重要的是对请求的分析与构造,而刚好沪江小D在这一块却没那么麻烦。只需要写带上一个content参数,外加请求头的cookie就能拿到数据。翻译方向是拼接在访问路径里面的。

例如:https://dict.hjenglish.com/v10/dict/translation/jp/jp 表示从日语翻译到日语。
在这里插入图片描述
注意:cookie一定要有,不然会得到一个非正常访问的信息。
这里贴出获取响应结果的代码:

import requests
base_url = "https://dict.hjenglish.com/v10/dict/translation"
# 如果在公司需要设置代理,个人使用时不用proxies参数
proxies = {
     'http': SETTINGS['http_proxy'],
     'https': SETTINGS['https_proxy']
 }
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4043.400',
        'referer': 'https://dict.hjenglish.com/app/trans',
        'cookie': 'HJ_UID=62ecdcb4-18dd-b89a-39b8-d3ae29f7a945; TRACKSITEMAP=3%2C20%2C23; _SREG_20=www.baidu.com%7C%7Csearch%7Cdomain; _SREF_20=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DhyKgBOkGFQR01SSRmo7VknK4QwVQIldqklx5Rp8DnEZEuuKZKZLW6HA_szdxSEOUebC5lDawvY00P_wQbBhKcMfyRi1L_8i4NtSXXbpSHCkFAVUmErnF8jeIacjvCaWTF9a0YnL9vR3XJSErsWNjIa%26wd%3D%26eqid%3Dd56c85360010ae6b00000003603f21b6; _SREF_3=; _REF=; acw_tc=707c9fc316147644229968942e605090718ce7e184164b887c24be999348a4; HJ_CST=0; HJ_CSST_3=0; HJ_SID=4pdfs7-0aa1-46a9-a81d-52e432e2efd8; HJ_SSID_3=4pdfs7-51bb-42aa-824c-ffa74e82386d; _SREG_3=direct%7C%7Cdirect%7Cdirect; _REG=direct%7C%7Cdirect%7Cdirect'
    }
session = requests.Session()
url = f"{base_url}/cn/jp"
response = ""
try:
    response = session.post(url, data={
        "content": keyword
    }, proxies=proxies, headers=headers)
except:
    print('网络连接错误!')
    return None
if response.status_code != 200:
    trans_result['trans_text'] = 'error!'
    return None
res_dict = response.json()['data']
print(res_dict)

在这里插入图片描述
拿到了数据,大家就可以自由发挥了。我这边展示一下我的成果。

界面很简单,实现了各国语言之间的翻译,日语的情况下会将带假名和不带假名的结果显示在右边。下面是一个历史翻译记录,会保存在本地,每次打开应用程序自动加载。能获取到语音朗读的情况下,会自动朗读翻译结果。
在这里插入图片描述
以上就是本次学习的一个记录,欢迎大家留言探讨。程序已打包,请自行下载:https://download.csdn.net/download/qq_36991535/15561961,需要源码的朋友请私信我。

本次小工具的开发,只做学习使用。如有侵权,请联系QQ:1593324992,我将及时进行删除。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anesthesia丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值