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 相关文章推荐
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
Django实现全文检索的方法(支持中文)
May 14 Python
python实现比较文件内容异同
Jun 22 Python
使用Scrapy爬取动态数据
Oct 21 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
详解使用Python下载文件的几种方法
Oct 13 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
AI:如何训练机器学习的模型
Apr 16 Python
python基础之//、/与%的区别详解
Jun 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
PageFactory设计模式基于python实现
2020/04/14 Python
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
使用C#编写创建一个线程的代码
2013/01/22 面试题
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL