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 中文乱码问题深入分析
Mar 13 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
分享6个隐藏的python功能
Dec 07 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
Python 项目转化为so文件实例
Dec 23 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 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
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
Laravel实现表单提交
2017/05/07 PHP
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
详解JavaScript的另类写法
2016/04/11 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
Python实现可自定义大小的截屏功能
2018/01/20 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
python之yield和Generator深入解析
2019/09/18 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
家长对老师的感言
2014/03/11 职场文书
农民工工资发放承诺书
2014/03/31 职场文书
学期个人自我总结
2015/02/13 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android