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中lambda的用法及其与def的区别解析
Jul 28 Python
Python使用爬虫猜密码
Feb 19 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
Python实现网站表单提交和模板
Jan 15 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
python中threading开启关闭线程操作
May 02 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
python 中关于pycharm选择运行环境的问题
Oct 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+JS+rsa数据加密传输实现代码
2011/03/23 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
python将ansible配置转为json格式实例代码
2017/05/15 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
python 将md5转为16字节的方法
2018/05/29 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
struct与class的区别
2014/02/03 面试题
运动会班级口号
2014/06/09 职场文书
继承权公证书范本
2015/01/23 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android