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中的多重继承实例讲解
Sep 28 Python
python实现linux下使用xcopy的方法
Jun 28 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
matplotlib绘制动画代码示例
Jan 02 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
python 实现字符串下标的输出功能
Feb 13 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
python爬虫爬取网页数据并解析数据
Sep 18 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
JAVA/JSP学习系列之二
2006/10/09 PHP
提升PHP执行速度全攻略(下)
2006/10/09 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
php获取图片信息的方法详解
2015/12/10 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
js表单登陆验证示例
2016/10/19 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Python分类测试代码实例汇总
2020/07/23 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
土木工程毕业生推荐信
2013/10/28 职场文书
企业门卫岗位职责
2013/12/12 职场文书
低碳环保倡议书
2014/04/14 职场文书
公司活动总结怎么写
2014/06/25 职场文书
三八妇女节标语
2014/10/09 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
面试复试通知单
2015/04/24 职场文书
工作态度不好检讨书
2015/05/06 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python