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实现simhash算法实例
Apr 25 Python
Python利用IPython提高开发效率
Aug 10 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Python之两种模式的生产者消费者模型详解
Oct 26 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
Python调用接口合并Excel表代码实例
Mar 31 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 返回13位时间戳的实现代码
2016/05/13 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
Python实现控制台进度条功能
2016/01/04 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
电气专业推荐信范文
2013/11/18 职场文书
推普周活动总结
2014/08/28 职场文书
小学庆六一活动总结
2014/08/28 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技