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字符串拼接的几种方法整理
Aug 02 Python
python虚拟环境迁移方法
Jan 03 Python
python循环定时中断执行某一段程序的实例
Jun 29 Python
Django 开发调试工具 Django-debug-toolbar使用详解
Jul 23 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
详解如何使用Pytest进行自动化测试
Jan 14 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 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中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
探讨如何把session存入数据库
2013/06/07 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
js密码强度校验
2015/11/10 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
深入浅出分析Python装饰器用法
2017/07/28 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python的多维空数组赋值方法
2018/04/13 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
python脚本和网页有何区别
2020/07/02 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
网络信息安全承诺书
2014/03/26 职场文书
学习经验交流会主持词
2014/04/01 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
高中生逃课检讨书
2014/10/10 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
教师节晚会主持词
2015/06/30 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python