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中的并发编程实例
Jul 07 Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
Python中enumerate函数代码解析
Oct 31 Python
Python线程创建和终止实例代码
Jan 20 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
tensorflow实现逻辑回归模型
Sep 08 Python
Pytorch中index_select() 函数的实现理解
Nov 19 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
Django路由层URLconf作用及原理解析
Sep 24 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
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP的反射机制实例详解
2017/03/29 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python使用fork实现守护进程的方法
2017/11/16 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python学生信息管理系统(初级版)
2018/10/17 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
学校安全检查制度
2014/01/27 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
争先创优演讲稿
2014/09/15 职场文书
会计求职简历自我评价
2015/03/10 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
详解nginx location指令
2022/01/18 Servers
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers