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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
Python爬取Coursera课程资源的详细过程
Nov 04 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python编写简单爬虫资料汇总
Mar 22 Python
Python 操作MySQL详解及实例
Apr 30 Python
python实现Adapter模式实例代码
Feb 09 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
django将数组传递给前台模板的方法
Aug 06 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
pytorch实现ResNet结构的实例代码
May 17 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
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
Python程序控制语句用法实例分析
2020/01/14 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
德国高尔夫商店:Par71.de
2020/11/29 全球购物
三分钟演讲稿范文
2014/04/24 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
文员岗位职责
2015/02/04 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
银行实习推荐信
2015/03/27 职场文书
学习委员竞选稿
2015/11/20 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
使用python绘制横竖条形图
2022/04/21 Python