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 相关文章推荐
python2.7的编码问题与解决方法
Oct 04 Python
对Python 数组的切片操作详解
Jul 02 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
python实现大量图片重命名
Mar 23 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
Python正则表达式学习小例子
Mar 03 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
python使用torch随机初始化参数
Mar 22 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中的fopen()函数用打开文件模式说明
2013/06/20 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
js读取cookie方法总结
2014/10/31 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
Python操作CouchDB数据库简单示例
2015/03/10 Python
Python实例一个类背后发生了什么
2016/02/09 Python
python列表的常用操作方法小结
2016/05/21 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
Python文件读写常见用法总结
2019/02/22 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
九年级历史教学反思
2014/01/27 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
社区重阳节活动总结
2015/03/24 职场文书
毕业论文致谢范文
2015/05/14 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
公司车辆管理制度
2015/08/04 职场文书