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中的迭代器与生成器高级用法解析
Jun 28 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
python tkinter canvas使用实例
Nov 04 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
PyInstaller运行原理及常用操作详解
Jun 13 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
python中yield的用法详解
Jan 13 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统计二维数组元素个数的方法
2013/11/12 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
个人教师自我评价范文
2013/12/02 职场文书
费用会计岗位职责
2014/01/01 职场文书
小学英语教学反思
2014/01/30 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
导游词之镇江焦山
2019/11/21 职场文书
MySQL索引失效的典型案例
2021/06/05 MySQL