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小技巧分享
Nov 22 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
Python使用filetype精确判断文件类型
Jul 02 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
Python基础学习之函数方法实例详解
Jun 18 Python
Django框架 querySet功能解析
Sep 04 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
Python自动化爬取天眼查数据的实现
Jun 15 Python
浅谈Python数学建模之数据导入
Jun 23 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
PHPlet在Windows下的安装
2006/10/09 PHP
输出控制类
2006/10/09 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
详细介绍Python中的偏函数
2015/04/27 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
信息工程学院毕业生推荐信
2013/11/05 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
同学聚会祝酒词
2015/08/10 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis