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的pyxmpp2中的主循环使其提高性能
Apr 24 Python
python绘图方法实例入门
May 19 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
Python 中导入csv数据的三种方法
Nov 01 Python
python opencv读mp4视频的实例
Dec 07 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Python中zip()函数的简单用法举例
Sep 02 Python
python关闭占用端口方式
Dec 17 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
基于python实现可视化生成二维码工具
Jul 08 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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/01/08 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
Python生成器generator用法示例
2018/08/10 Python
python实现文本界面网络聊天室
2018/12/12 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
python之yield和Generator深入解析
2019/09/18 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
python标准库os库的函数介绍
2020/02/12 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
历史学专业个人的自我评价
2013/10/13 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
教学改革实施方案
2014/03/31 职场文书
购房意向书
2014/04/01 职场文书
社团活动总结书
2014/06/27 职场文书
主婚人致辞精选
2015/07/28 职场文书
党员反邪教心得体会
2016/01/15 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS