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 相关文章推荐
pygame学习笔记(5):游戏精灵
Apr 15 Python
利用python画一颗心的方法示例
Jan 31 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
Python探索之修改Python搜索路径
Oct 25 Python
python 执行shell命令并将结果保存的实例
May 11 Python
python单例模式实例解析
Aug 28 Python
Django实现发送邮件找回密码功能
Aug 12 Python
python 发送json数据操作实例分析
Oct 15 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
Python 中如何写注释
Aug 28 Python
python如何设置静态变量
Sep 07 Python
OpenCV利用python来实现图像的直方图均衡化
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
php一个找二层目录的小东东
2012/08/02 PHP
PHP错误机制知识汇总
2016/03/24 PHP
php blowfish加密解密算法
2016/07/02 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
全面了解js中的script标签
2016/07/04 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Android分包MultiDex策略详解
2017/10/30 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
台湾最大网路书店:博客来
2018/03/18 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
纪律教育月活动总结
2014/08/26 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
违章停车检讨书
2014/10/21 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
计算机实训心得体会
2016/01/14 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
python库sklearn常用操作
2021/08/23 Python