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 05 Python
用python写的一个wordpress的采集程序
Feb 27 Python
python中异常报错处理方法汇总
Nov 20 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
python设置环境变量的作用整理
Feb 17 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
python学生管理系统的实现
Apr 05 Python
Python参数传递及收集机制原理解析
Jun 05 Python
关于的python五子棋的算法
May 02 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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
event.srcElement+表格应用
2006/08/29 Javascript
获取Javscript执行函数名称的方法
2006/12/22 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
Python 绘制可视化折线图
2020/07/22 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
Android面试题及答案
2015/09/04 面试题
篝火晚会主持词
2014/03/25 职场文书
大学生新学期计划书
2014/04/28 职场文书
三方股份合作协议书
2014/10/13 职场文书
文明班级申报材料
2014/12/24 职场文书
党支部书记岗位职责
2015/02/15 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书