python workflow_Python 编写一个有道翻译的 workflow 教程
最近使用有道翻译的 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 教程相关推荐
- Python 编写一个有道翻译的 workflow 教程
最近使用有道翻译的 workflow 总是翻译不了,可能是 appKey 失效了或者超过调用上限,所以打算自己实现一个. 创建 workflow 打开 Alfred3 的 Preferences,选择 ...
- python9行代码_如何用9行Python代码编写一个简易神经网络
原标题:如何用9行Python代码编写一个简易神经网络 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 学习人工智能时,我给自己定了一个目标--用Pyth ...
- python调用有道翻译_如何用python“优雅的”调用有道翻译?
前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...
- 有道python网课怎么样-如何用python“优雅的”调用有道翻译?
前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...
- 如何用python“优雅的”调用有道翻译
文章目录 前言 分析 分析url 分析参数01 分析参数02 加密分析 模拟请求 注意点 请求代码 执行结果 结语 前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面 ...
- 如何用python“优雅的”调用有道翻译?
其实在以前就盯上 有道翻译了 的,但是由于时间问题一直没有研究(我的 骚操作还在后面 ,记得关注),本文主要讲解如何用python调用有道翻译,讲解 这个爬虫与有道翻译 的js" 斗争 &q ...
- python md5加密_如何用python“优雅”的调用有道翻译?
前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...
- python3爬虫有道翻译_一篇文章教会你利用Python网络爬虫获取有道翻译手机版的翻译接口...
[一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ![image](ht ...
- 使用python对在线网易有道翻译接口进行分析及破解js加密
文章目录 项目目标 温馨提示 项目分析 分析完毕,进行代码模拟加密过程,代码演示 项目目标 对网易有道翻译接口关键参数进行分析,并且进行js加密破解,实质上就是找出网易有道翻译接口对关键参数的加密的详 ...
- IT宅男利用Python网络爬虫获取有道翻译手机版翻译接口
[一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. [二.项目目标] 多国 ...
最新文章
- 【怎样写代码】对象克隆 -- 原型模式(一):问题案例
- 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
- MySQL学习笔记之九:MySQL Replication
- 鸟哥的Linux私房菜(服务器)- 簡易 Cluster 架設
- mysql自定义多选排序_前端框架(二)DIV多选复选框框的封装和MySql数据库存取...
- 深入浅出——网络模型中Inception的作用与结构全解析
- CRM One order里user status和system status的mapping逻辑
- 造轮子是什么意思_程序员为什么热衷于造轮子,升职加薪吗?
- python中bs4.element.tag_python – BeautifulSoup标签是类型bs4.element.NavigableString和bs4.element.Tag...
- TensorFlow实现去噪自编码器(Denoising Autoencoder)
- 简单类型视图状态应用
- exec还原oracle,详解通过Backup Exec来实施Oracle灾难恢复
- MTK编译modem ,识别不到基带版本什么原因呢?
- VMWare虚拟机无法开启,显示模块“Disk”启动失败
- 使用ffmpeg 合并音频视频
- IP地址、网络号、网关的区别
- 【oneDrive】学生认证
- 万事开头易的hello world!
- 洛谷:P4516 [JSOI2018] 潜入行动(树形dp、树上分组背包统计方案数)
- 电脑初学者所需软件及网站
热门文章
- Linux_clustalW安装及使用(部分)
- 51驱动AD9850/AD9851—DDS信号发生器
- EFS加密文件重装系统无法打开图标带小锁显示绿色解密
- prusai3打印机使用教程_【打印虎原创】Prusa_i3_3D打印机校准图解教程-基础篇
- 个人公众号: AI科技时讯
- 台式电脑上为什么没有计算机,台式电脑怎么没有声音
- Android wps自定义功能,完美兼容安卓4.2新增多项功能 WPS移动版升级至5.2
- 1205:汉诺塔问题
- 李嘉诚再次助攻华为 用事实打脸“别让李嘉诚跑了”
- vue3 Extraneous non-props attributes (modelValue) were passed to component but could not be automati