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创建XML文档
Mar 01 Python
pandas 实现字典转换成DataFrame的方法
Jul 04 Python
python梯度下降法的简单示例
Aug 31 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
python如何爬取网站数据并进行数据可视化
Jul 08 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
jupyter notebook 重装教程
Apr 16 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
Django REST Framework 分页(Pagination)详解
Nov 30 Python
详解python的内存分配机制
May 10 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函数,php爱好者站推荐
2007/03/19 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
使用js画图之画切线
2015/01/12 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
Python网络编程详解
2017/10/31 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python如何将多个PDF进行合并
2019/08/13 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
python Tensor和Array对比分析
2020/01/08 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
python判断变量是否为列表的方法
2020/09/17 Python
C++面试题:关于链表和指针
2013/06/05 面试题
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
园林施工员岗位职责
2013/12/11 职场文书
写给女生的道歉信
2014/01/14 职场文书
图书室标语
2014/06/21 职场文书
捐款活动总结
2014/08/27 职场文书
委托书的写法
2014/09/16 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
经费申请报告
2015/05/15 职场文书
《司马光》教学反思
2016/02/22 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang