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实用代码片段收集贴
Jun 03 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
Python常用模块之requests模块用法分析
May 15 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
对python while循环和双重循环的实例详解
Aug 23 Python
Python装饰器用法与知识点小结
Mar 09 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
浅析Python的命名空间与作用域
Nov 25 Python
解决pytorch-gpu 安装失败的记录
May 24 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 选项及相关信息函数库
2006/12/04 PHP
如何使用php输出时间格式
2013/08/31 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
介绍一下Ruby的多线程处理
2013/02/01 面试题
高中自我鉴定
2013/12/20 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
员工教育培训协议书
2014/09/27 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书