python3调用百度翻译API实现实时翻译
2018-08-16 10:43
1236 查看
今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是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]通过调用百度翻译API实现的翻译小程序
- 实践项目五:python调用百度API实现自动检测翻译
- Python通过调用有道翻译api实现翻译功能示例
- C#调用百度翻译API实现自己的简单翻译工具
- python3 调用百度翻译API翻译英文字幕
- python3百度翻译API实现批量翻译
- C# 调用百度翻译API实现翻译功能
- 让人头大的英语linux也能翻译 – Linux下Python实现有道词典[转]
- Python实现子类调用父类的方法
- Java实现调用jython执行python文件的方法
- 用python实现百度翻译的示例代码
- python实现自主查询实时天气
- Python 调用snmp自定义OID实现监控
- 实现python调用Matlab的.m文件
- H5实现调用本地摄像头实现实时视频以及拍照功能
- Python通过属性手段实现只允许调用一次的方法
- python子类调用父类的构造方法实现方案
- Python 调用有道的翻译接口
- python实现编写一个@performance,它可以打印出函数调用的时间。
- JPype:实现在python中调用JAVA