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检测服务器是否正常
Feb 16 Python
跟老齐学Python之编写类之三子类
Oct 11 Python
python开发之str.format()用法实例分析
Feb 22 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
Python面向对象编程基础解析(二)
Oct 26 Python
Python3 操作符重载方法示例
Nov 23 Python
手把手教你python实现SVM算法
Dec 27 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
将pytorch转成longtensor的简单方法
Feb 18 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 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和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
基于jquery的滑动样例代码
2010/11/20 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
Js apply方法详解
2017/02/16 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python使用xmlrpc实例讲解
2013/12/17 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
新郎新娘婚礼答谢词
2014/01/11 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
教你利用python实现企业微信发送消息
2021/05/23 Python
教你怎么用Python操作MySql数据库
2021/05/31 Python
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers