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中的__SLOTS__属性使用示例
Feb 18 Python
Python 的内置字符串方法小结
Mar 15 Python
python机器学习实战之树回归详解
Dec 20 Python
Java及python正则表达式详解
Dec 27 Python
python实现媒体播放器功能
Feb 11 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
python实现简单银行管理系统
Oct 25 Python
python实现拼接图片
Mar 23 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
Python实现壁纸下载与轮换
Oct 19 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 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获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
JQuery选择器特辑 详细小结
2012/05/14 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
vant实现购物车功能
2020/06/29 Javascript
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
python下10个简单实例代码
2017/11/15 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
linux下进程间通信的方式
2014/12/23 面试题
干部行政关系介绍信
2014/01/17 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
Golang 链表的学习和使用
2022/04/19 Golang
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android