python3调用百度翻译API实现实时翻译


Posted in Python onAugust 16, 2018

今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是Python2,我需要Python3,就自己写了一个:

# coding: utf8
'''
 @Author: LCY
 @Contact: lchuanyong@126.com
 @blog: http://http://blog.csdn.net/lcyong_
 @Date: 2018-01-15
 @Time: 19:19
 说明: appid和secretKey为百度翻译文档中自带的,需要切换为自己的
   python2和python3部分库名称更改对应如下:
   httplib  ----> http.client
   md5   ----> hashlib.md5
   urllib.quote ----> urllib.parse.quote
 官方链接:
   http://api.fanyi.baidu.com/api/trans/product/index
   
'''
 
import http.client
import hashlib
import json
import urllib
import random
 
def baidu_translate(content):
 appid = '20151113000005349'
 secretKey = 'osubCEzlGjzvw8qdQc41'
 httpClient = None
 myurl = '/api/trans/vip/translate'
 q = content
 fromLang = 'zh' # 源语言
 toLang = 'jp' # 翻译后的语言
 salt = random.randint(32768, 65536)
 sign = appid + q + str(salt) + secretKey
 sign = hashlib.md5(sign.encode()).hexdigest()
 myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
  q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
  salt) + '&sign=' + sign
 
 try:
  httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
  httpClient.request('GET', myurl)
  # response是HTTPResponse对象
  response = httpClient.getresponse()
  jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式
  js = json.loads(jsonResponse) # 将json格式的结果转换字典结构
  dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果
  print(dst) # 打印结果
 except Exception as e:
  print(e)
 finally:
  if httpClient:
   httpClient.close()
 
if __name__ == '__main__':
 while True:
  print("请输入要翻译的内容,如果退出输入q")
  content = input()
  if (content == 'q'):
   break
  baidu_translate(content)

官方版本:

#/usr/bin/env python
#coding=utf8
 
import httplib
import md5
import urllib
import random
 
appid = '20151113000005349'
secretKey = 'osubCEzlGjzvw8qdQc41'
 
 
httpClient = None
myurl = '/api/trans/vip/translate'
q = 'apple'
fromLang = 'en'
toLang = 'zh'
salt = random.randint(32768, 65536)
 
sign = appid+q+str(salt)+secretKey
m1 = md5.new()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl+'?appid='+appid+'&q='+urllib.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
 
try:
 httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
 httpClient.request('GET', myurl)
 
 #response是HTTPResponse对象
 response = httpClient.getresponse()
 print response.read()
except Exception, e:
 print e
finally:
 if httpClient:
  httpClient.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python命令行参数解析模块optparse使用实例
Apr 13 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
python 返回列表中某个值的索引方法
Nov 07 Python
python3 实现的对象与json相互转换操作示例
Aug 17 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Django --Xadmin 判断登录者身份实例
Jul 03 Python
Python logging模块原理解析及应用
Aug 13 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 Python
Python用于学习重要算法的模块pygorithm实例浅析
Aug 16 #Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 #Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 #Python
Python使用pickle模块储存对象操作示例
Aug 15 #Python
Linux下多个Python版本安装教程
Aug 15 #Python
Python并发之多进程的方法实例代码
Aug 15 #Python
Python使用sort和class实现的多级排序功能示例
Aug 15 #Python
You might like
PHP自定义大小验证码的方法详解
2013/06/07 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
浅谈Vue的响应式原理
2019/05/30 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
js Array.slice的8种不同用法示例
2019/07/10 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
Python读取mp3中ID3信息的方法
2015/03/05 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
通过代码实例了解Python sys模块
2020/09/14 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
有模特经验的简历自我评价
2013/09/19 职场文书
运动员代表致辞
2015/07/29 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL