网络编程
位置:首页>> 网络编程>> Python编程>> python3调用百度翻译API实现实时翻译

python3调用百度翻译API实现实时翻译

作者:LCYong_  发布时间:2021-06-21 01:45:46 

标签:python,百度翻译,翻译

今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是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()

来源:https://blog.csdn.net/LCYong_/article/details/79068636

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com