Python通过调用有道翻译api实现翻译功能示例


Posted in Python onJuly 19, 2018

本文实例讲述了Python通过调用有道翻译api实现翻译功能。分享给大家供大家参考,具体如下:

通过调用有道翻译的api,实现中译英、其他语言译中文

Python代码:

# coding=utf-8
import urllib
import urllib2
import json
import time
import hashlib
class YouDaoFanyi:
 def __init__(self, appKey, appSecret):
  self.url = 'https://openapi.youdao.com/api/'
  self.headers = {
   "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36",
  }
  self.appKey = appKey # 应用id
  self.appSecret = appSecret # 应用密钥
  self.langFrom = 'auto' # 翻译前文字语言,auto为自动检查
  self.langTo = 'auto'  # 翻译后文字语言,auto为自动检查
 def getUrlEncodedData(self, queryText):
  '''
  将数据url编码
  :param queryText: 待翻译的文字
  :return: 返回url编码过的数据
  '''
  salt = str(int(round(time.time() * 1000))) # 产生随机数 ,其实固定值也可以,不如"2"
  sign_str = self.appKey + queryText + salt + self.appSecret
  sign = hashlib.md5(sign_str).hexdigest()
  payload = {
   'q': queryText,
   'from': self.langFrom,
   'to': self.langTo,
   'appKey': self.appKey,
   'salt': salt,
   'sign': sign
  }
  # 注意是get请求,不是请求
  data = urllib.urlencode(payload)
  return data
 def parseHtml(self, html):
  '''
  解析页面,输出翻译结果
  :param html: 翻译返回的页面内容
  :return: None
  '''
  data = json.loads(html)
  print '-' * 10
  translationResult = data['translation']
  if isinstance(translationResult, list):
   translationResult = translationResult[0]
  print translationResult
  if "basic" in data:
   youdaoResult = "\n".join(data['basic']['explains'])
   print '有道词典结果'
   print youdaoResult
  print '-' * 10
 def translate(self, queryText):
  data = self.getUrlEncodedData(queryText) # 获取url编码过的数据
  target_url = self.url + '?' + data # 构造目标url
  request = urllib2.Request(target_url, headers=self.headers) # 构造请求
  response = urllib2.urlopen(request) # 发送请求
  self.parseHtml(response.read()) # 解析,显示翻译结果
if __name__ == "__main__":
 appKey = '应用id' # 应用id
 appSecret = '应用密钥' # 应用密钥
 fanyi = YouDaoFanyi(appKey, appSecret)
 while True:
  queryText = raw_input("请输入你好翻译的文字[Q|quit退出]: ").strip()
  if queryText in ['Q', 'quit']:
   break
  fanyi.translate(queryText)

关于有道翻译api的详细说明可参考其官网:http://ai.youdao.com/docs/api.html

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python处理中文编码和判断编码示例
Feb 26 Python
python 的列表遍历删除实现代码
Apr 12 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
Python如何输出警告信息
Jul 30 Python
详解python变量与数据类型
Aug 25 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python爬虫中的url下载器用法详解
Nov 30 Python
python3基于OpenCV实现证件照背景替换
Jul 18 #Python
python和opencv实现抠图
Jul 18 #Python
Python错误处理操作示例
Jul 18 #Python
Python内存读写操作示例
Jul 18 #Python
NumPy 数学函数及代数运算的实现代码
Jul 18 #Python
Sanic框架应用部署方法详解
Jul 18 #Python
Python Web编程之WSGI协议简介
Jul 18 #Python
You might like
php项目打包方法
2008/02/18 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php通过session防url攻击方法
2014/12/10 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
商场消防演习方案
2014/02/12 职场文书
内衣营销方案
2014/03/15 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
离职报告范文
2014/11/04 职场文书
消防宣传标语大全
2015/08/03 职场文书
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers