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遍历文件夹后将结果存储为xml
Jan 27 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
对python for 文件指定行读写操作详解
Dec 29 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
python爬虫泛滥的解决方法详解
Nov 25 Python
python 实现超级玛丽游戏
Nov 25 Python
Django中使用Celery的方法步骤
Dec 07 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 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原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
vue-router命名视图的使用讲解
2019/01/19 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
Python实现LRU算法的2种方法
2015/06/24 Python
Python正则表达式经典入门教程
2017/05/22 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
社区春季防火方案
2014/06/02 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python