最近使用有道翻译的 workflow 总是翻译不了,可能是 appKey 失效了或者超过调用上限,所以打算自己实现一个。

创建 workflow

打开 Alfred3 的 Preferences,选择 Workflows。

下方有个+,单击后选择 Blank Workflow。完成基本信息的填写。

然后右击添加:Inputs->Script Filter。

Keyword 输入 yd,代表我们用'yd' 激活我们的 workflow。

写上合适的提示文字

Language 选择 /bin/bash 或者 /bin/zsh

选择with input as {query}

脚本填入python translate.py {query}, translate.py 是自己编写的 python 脚本。

可以找一个合适的图标拖到右上角图标的位置。

安装 Alfred-Workflow 库:

点击 Cancel 左边的图标,进入到 workflow 所在的目录。

或者右击 workflow 选择 Open in Finder

如果需要将自己编写的 workflow 分享给别人使用,则需要将 Alfred-Workflow 安装到 workflow 所在的目录。

# 进入到 workflow 所在目录

pip install Alfred-Workflow --target=.

申请 appKey

有道翻译的 api 现在是计费的,申请实例之后可以获得100元体验金,那就先用着吧。

先打开http://ai.youdao.com/,然后注册登录。接下来:

自然语言翻译=》翻译实例=》创建实例,选择文本翻译。

应用管理=》我的应用=》创建应用,接入方式选择API。创建成功后绑定服务。

点击应用的名称,进入应用详情页面,可以看到用来调用 api 的应用ID 和应用密钥。

编写 translate.py

# -*- coding:utf8 -*-

import sys

from workflow import Workflow3, web

def translate(wf):

import md5

import random

# 此处修改为你的应用 ID

appKey = '024b716exxxxxxxx'

# 此处修改为你的应用密钥

key = 'XWLYKxGoMK7474Ux1NXFxxxxxxxxxxxx'

query = sys.argv[1]

salt = str(random.randint(1, 65536))

sign = appKey + query + salt + key

m1 = md5.new()

m1.update(sign)

sign = m1.hexdigest()

params = dict(appKey=appKey, q=query, salt=salt, sign=sign)

r = web.get('https://openapi.youdao.com/api', params)

r.raise_for_status()

res = r.json()

if res.get('web'):

posts = res['web']

for post in posts:

wf.add_item(title=u" ".join(post['value']), subtitle=post['key'])

else:

wf.add_item(title=u"No result", subtitle="errorCode:"+res["errorCode"])

wf.send_feedback()

if __name__ == "__main__":

wf = Workflow3()

sys.exit(wf.run(translate))

测试

保存代码后,可以打开 workflow 的 debug,输入 yd hello进行测试。

如果出现错误,可以在有道的 API 文档中查询错误码列表,如上108代表的是appKey无效。

使用有效的appKey 后,效果如下:

参考链接:

python workflow_Python 编写一个有道翻译的 workflow 教程相关推荐

  1. Python 编写一个有道翻译的 workflow 教程

    最近使用有道翻译的 workflow 总是翻译不了,可能是 appKey 失效了或者超过调用上限,所以打算自己实现一个. 创建 workflow 打开 Alfred3 的 Preferences,选择 ...

  2. python9行代码_如何用9行Python代码编写一个简易神经网络

    原标题:如何用9行Python代码编写一个简易神经网络 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 学习人工智能时,我给自己定了一个目标--用Pyth ...

  3. python调用有道翻译_如何用python“优雅的”调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

  4. 有道python网课怎么样-如何用python“优雅的”调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

  5. 如何用python“优雅的”调用有道翻译

    文章目录 前言 分析 分析url 分析参数01 分析参数02 加密分析 模拟请求 注意点 请求代码 执行结果 结语 前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面 ...

  6. 如何用python“优雅的”调用有道翻译?

    其实在以前就盯上 有道翻译了 的,但是由于时间问题一直没有研究(我的 骚操作还在后面 ,记得关注),本文主要讲解如何用python调用有道翻译,讲解 这个爬虫与有道翻译 的js" 斗争 &q ...

  7. python md5加密_如何用python“优雅”的调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

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

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

  9. 使用python对在线网易有道翻译接口进行分析及破解js加密

    文章目录 项目目标 温馨提示 项目分析 分析完毕,进行代码模拟加密过程,代码演示 项目目标 对网易有道翻译接口关键参数进行分析,并且进行js加密破解,实质上就是找出网易有道翻译接口对关键参数的加密的详 ...

  10. IT宅男利用Python网络爬虫获取有道翻译手机版翻译接口

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

最新文章

  1. 【怎样写代码】对象克隆 -- 原型模式(一):问题案例
  2. 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
  3. MySQL学习笔记之九:MySQL Replication
  4. 鸟哥的Linux私房菜(服务器)- 簡易 Cluster 架設
  5. mysql自定义多选排序_前端框架(二)DIV多选复选框框的封装和MySql数据库存取...
  6. 深入浅出——网络模型中Inception的作用与结构全解析
  7. CRM One order里user status和system status的mapping逻辑
  8. 造轮子是什么意思_程序员为什么热衷于造轮子,升职加薪吗?
  9. python中bs4.element.tag_python – BeautifulSoup标签是类型bs4.element.NavigableString和bs4.element.Tag...
  10. TensorFlow实现去噪自编码器(Denoising Autoencoder)
  11. 简单类型视图状态应用
  12. exec还原oracle,详解通过Backup Exec来实施Oracle灾难恢复
  13. MTK编译modem ,识别不到基带版本什么原因呢?
  14. VMWare虚拟机无法开启,显示模块“Disk”启动失败
  15. 使用ffmpeg 合并音频视频
  16. IP地址、网络号、网关的区别
  17. 【oneDrive】学生认证
  18. 万事开头易的hello world!
  19. 洛谷:P4516 [JSOI2018] 潜入行动(树形dp、树上分组背包统计方案数)
  20. 电脑初学者所需软件及网站

热门文章

  1. Linux_clustalW安装及使用(部分)
  2. 51驱动AD9850/AD9851—DDS信号发生器
  3. EFS加密文件重装系统无法打开图标带小锁显示绿色解密
  4. prusai3打印机使用教程_【打印虎原创】Prusa_i3_3D打印机校准图解教程-基础篇
  5. 个人公众号: AI科技时讯
  6. 台式电脑上为什么没有计算机,台式电脑怎么没有声音
  7. Android wps自定义功能,完美兼容安卓4.2新增多项功能 WPS移动版升级至5.2
  8. 1205:汉诺塔问题
  9. 李嘉诚再次助攻华为 用事实打脸“别让李嘉诚跑了”
  10. vue3 Extraneous non-props attributes (modelValue) were passed to component but could not be automati