Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)

之前基于百度写了一篇博文 Python 打造基于百度翻译的命令行翻译工具,本来这工具用得挺好的。但是没想到,近期处于不知道啥原因,不能用了。破解人家的接口难免会有这样的情况发生,也不能怪人家百度对吧。

加上最近工作比较忙,所以也没有去再研究,今天正好有点时间,我就打算重新写一个命令行的翻译工具。想来破解人家的是不对,不如使用人家提供的 Api ,代码清晰简单,使用应该更加长久。

开发

百度提供的接口实在是太挫了,于是看有道翻译的接口,果然很是不错。遂决定基于有道的 Api 来写这个工具。首先到 https://ai.youdao.com/register.s 进行注册,注册之后创建一个应用,以及创建一个自然语言翻译实例。进行绑定后,拿到 AppIdAppKey 两个关键参数。

然后,我们在本地创建 config.py 文件,录入以下代码:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-APPID = 'Your AppId'
APPKey = 'Your AppKey'

将自己申请得到的参数填写到上面的文件中。然后我们创建 fanyi.py 文件,写入以下代码:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-import requests
import argparse
import random
import hashlib
import json
from config import APPID, APPKey
from prettytable import PrettyTabledef fanyi(word, goNext):baseUrl = 'https://openapi.youdao.com/api'salt = str(random.randint(1000000, 9999999))sign = APPID + word + salt + APPKeym1 = hashlib.md5()m1.update(sign.encode('utf-8'))md5Sign = m1.hexdigest()queryFrom = {'appKey': APPID,'q': word,'from': 'auto','to': 'auto','salt': salt,'sign': md5Sign,}r = requests.post(baseUrl, data=queryFrom)if r.status_code == 200:res = json.loads(r.text)if res['errorCode'] == '0':showRes(word, res)if goNext:print('\n')inputWord(False)else:print(res['errorCode'])exit()else:print(r.status_code)exit()def showRes(word, res):tableHead = ['原词', word]x = PrettyTable(tableHead)x.padding_width = 1x.align = 'l'print('\n\033[1;36m简单结果\033[0m')for i in res['translation']:x.add_row(['结果', i])print(x)if 'basic' in res:print('\n\033[1;36m有道词典\033[0m')basic = res['basic']if 'wfs' in basic:wfs = basic['wfs']x = PrettyTable(['演化', '结果'])x.padding_width = 1x.align = 'l'for i in wfs:x.add_row([i['wf']['name'], i['wf']['value']])print(x)if 'explains' in basic:exps = basic['explains']x = PrettyTable(['示例'])x.padding_width = 1x.align = 'l'for i in exps:x.add_row([i])print(x)if 'web' in res:print('\n\033[1;36m网络释义\033[0m')x = PrettyTable(['相关词汇', '翻译'])x.padding_width = 1x.align = 'l'for i in res['web']:x.add_row([i['key'], ', '.join(i['value'])])print(x)def inputWord (isFirst):if isFirst:print('\n\033[1;36m英汉互译词典\033[0m by FungLeo')print('\033[35mTip:退出程序请输入 \033[1;31mexit\033[4;0m\n')word = input('请输入要翻译的内容:')if word == 'exit':print('\033[0m很高兴为您服务')exit()else:fanyi(word, True)if __name__ == '__main__':parser = argparse.ArgumentParser()parser.description = 'YouDao Fanyi Cli'parser.add_argument('-v', '--version', action = 'version', version = '%(prog)s V0.0.1')parser.add_argument('word', type = str, help = '需要翻译的单词', nargs = '?')args = parser.parse_args()if args.word == None:inputWord(True)else:fanyi(args.word, False)

如上代码就开发完成了。代码逻辑没什么要说的,只是简单的请求接口,另外把拿到的数据进行了一些美化而已。此外就是命令行工具的一些基本配置了。

有道翻译官方文档地址:http://ai.youdao.com/docs/doc-trans-api.s

测试

我们可以用 -v 以及 -h 来分别查看版本号以及帮助信息。如下图所示:

我们可以用直接跟需要翻译的词或句子(句子需要用双引号包含),进行随时翻译后立即关闭的服务。如下图所示:

我们还可以不输入参数,进入连续翻译模式,如下图所示:

如上,这些功能已经非常适合我的需要了,也就无所他求了。

有道翻译非常厚道的赠送了 100 元初始资金用户调用接口,相信足够我用很长时间。如果花完了也没关系,再冲钱就是了。

之前之所以破解百度的翻译来写,是因为百度提供的 Api 实在太烂,没办法才破解。我们不是不愿意付费,而是我们只愿意为优秀的服务付费。

本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)相关推荐

  1. Python 打造基于百度翻译的命令行翻译工具

    Python 打造基于百度翻译的命令行翻译工具 由于英文水平一般,所以还是非常依赖翻译工具的.fanyi.baidu.com 都成了我浏览器必开的网页之一了.昨天项目上线,等待过程中,无聊写了一个基于 ...

  2. 每天一个命令:top工具命令

    功用: <---实时动态地查看系统的整体运行情况,两个命令都是查看运行状况,但是htop更加易用---> TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命 ...

  3. python可视化框架英文论文_使用Python打造 基于Spacy的在线英文依存语法可视化器v0...

    项目缘起 最近准备重新拾起英文学习,背背英文文章啥的,然后发现对我这种英语学得还可以的学生来说,最怕遇到得其实是长到根本看不清的句子,再加上一些生词或者生词组,真的是查词典都没法查,看翻译吧又没法知道 ...

  4. 基于有道词典的英文词汇翻译API接口介绍,以及基于VS平台的C#程序实现

    在很多文本处理有关的应用中,需要用户提供对英文词汇的翻译功能.人工处理费时费力,如果能够有基于脚本与云服务的英文词典API实现自动的英文单词服务,将大大提高类似应用的执行效率. 这里介绍一种基于有道智 ...

  5. 有道词典工具(命令行+GUI)

    Sdet **S**imple **D**ictionary **E**xpanded **T**ool 这是一个简单的词典拓展工具,界面清新,操作简单,功能精巧. 使用平台: Windowns Li ...

  6. python有道字典_GitHub - qiuzhiqian/Sdet: 这是一个使用python开发的有道词典工具

    Sdet Simple Dictionary Expanded Tool 这是一个简单的词典拓展工具,界面清新,操作简单,功能精巧. 使用平台: Windowns Linux Mac OS 这是一个基 ...

  7. 使用Python实现基于API的网易有道翻译功能

    使用Python实现基于API的网易有道翻译功能 1.打开有道翻译页面 2.在浏览器页面左键-检查-Network 3.进行翻译的操作,右键下面红色部分,Copy link address 粘贴出来为 ...

  8. 基于python爬取有道翻译,并在线翻译

    基于python爬取有道翻译,并在线翻译 由于我也是爬虫新学者,有什么做的不对的请多加包涵 我们需要使用的库如下 from urllib import request import urllib im ...

  9. python3爬虫有道翻译_一篇文章教会你利用Python网络爬虫获取有道翻译手机版的翻译接口...

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ![image](ht ...

最新文章

  1. 安卓相对布局常用语句
  2. 公司运作 - 利润率、周转率
  3. POJ 1018 Communication System
  4. History(历史)命令用法 15 例
  5. Linux下配置安装PHP环境
  6. 运用递归将两个链表进行连接
  7. 使用Log4J监控系统日志邮件警报
  8. jep(java表达式分析器)简介
  9. 学生渐进片add如何给_渐进片的那些事「5」——验配之前的问诊
  10. 【亲测】win7设置让PC变身无线热点共享给手机上网
  11. EF Commander v19.08破解版
  12. 测试网站漏洞软件,网站漏洞检测工具
  13. Web of science以及中国知网学术论文爬取教程(附代码)
  14. Intent 和 Intentfilter
  15. app闪退之-- GL error: Out of memory!
  16. 物联网卡的使用规则,用物联卡的朋友注意了!
  17. Pupil dynamics for iris liveness detection 瞳孔活体检测论文翻译
  18. ros理论与实践网盘资源
  19. c语言开发一个学生成绩统计程序,用C语言实现成绩统计程序的设计课程设计报告.doc...
  20. java 私有构造_JAVA中构造方法私有化的作用是什么?

热门文章

  1. Blob detection+高斯二阶导(拉普拉斯模板)+尺度的选择+加快速度(DoG+分层处理)
  2. 西哈努克之子柬埔寨国王西哈莫尼抵京-西哈努克-国王-抵京
  3. html5表单地区元素,html5新增表单域元素及属性
  4. Metasploit工具使用(下)
  5. OpenStack云平台搭建(3) | 部署Glance
  6. vcruntime140_1.dll 丢失的解决办法
  7. JWT(Golang)
  8. 老男孩python 2018最新_2018最新老男孩全栈python第3期视频教程 完整版 附源码与笔记 | 52download...
  9. libpcap流量统计
  10. GAIL之imitation代码运行(含PBS)