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使用pil生成缩略图的方法
Mar 26 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
浅谈python numpy中nonzero()的用法
Apr 02 Python
Numpy数组转置的两种实现方法
Apr 17 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
简单了解django文件下载方式
Feb 10 Python
Python实现猜年龄游戏代码实例
Mar 25 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Postman动态获取返回值过程详解
2020/06/30 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
python中argparse模块用法实例详解
2015/06/03 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python之django母板页面的使用
2018/07/03 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
公司业务主管岗位职责
2013/12/07 职场文书
光盘行动倡议书
2014/02/02 职场文书
在Python 中将类对象序列化为JSON
2022/04/06 Python
Python字符串的转义字符
2022/04/07 Python