python3调用百度翻译API实现实时翻译
今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是Python2,我需要Python3,就自己写了一个:
# coding: utf8
"""
@Author: LCY
@Contact: lchuanyong@
@blog: http:///lcyong_
@Date: -01-15
@Time: 19:19
说明: appid和secretKey为百度翻译文档中自带的,需要切换为自己的
python2和python3部分库名称更改对应如下:
httplib ----> http.client
md5 ----> hashlib.md5
urllib.quote ----> urllib.parse.quote
官方链接:
http://api./api/trans/product/index
"""
import http.client
import hashlib
import json
import urllib
import random
def baidu_translate(content):
appid = "1113000005349"
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.")
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 = "1113000005349"
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.")
httpClient.request("GET", myurl)
#response是HTTPResponse对象
response = httpClient.getresponse()
print response.read()
except Exception, e:
print e
finally:
if httpClient:
httpClient.close()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。