失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 百度翻译api_Python如何通过百度翻译API实现翻译功能

python 百度翻译api_Python如何通过百度翻译API实现翻译功能

时间:2023-12-15 05:13:30

相关推荐

python 百度翻译api_Python如何通过百度翻译API实现翻译功能

本人英语不好,很多词组不认识,只能借助工具;百度翻译和谷歌翻译都不错,近期自学Python,就想能否自己设计一个百度翻译软件呢?

百度翻译开放平台:http://api./api/trans/product/index

百度翻译开放平台是百度翻译面向广大开发者提供开放服务的平台。

服务涵盖:通用翻译API、定制化翻译API、语音翻译SDK、拍照翻译SDK等,并持续更新中。自己用通用的即可。

通用翻译API采用全流程自助申请的模式。点击网站上方的“登录”按钮,以百度账号登录平台;在产品服务页面点击“立即使用”,按照页面提示信息注册成为开发者,即可获得APPID和密钥信息。同一百度账号或手机号码仅能申请一组APPID和密钥信息,该APPID和密钥信息可用于多项服务调用

已注册开发者的用户,可在产品服务页面点击“立即使用”或者在管理控制台开通通用翻译API服务;如需开通更多服务,可在管理控制台-总览页面开通其他服务。

通用翻译API技术文档 http://api./api/trans/product/apidoc

通用翻译API通过HTTP接口对外提供多语种互译服务。您只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。

通用翻译API HTTP地址:http://api./api/trans/vip/translate

通用翻译API HTTPS地址:https://fanyi-/api/trans/vip/translate

完整代码:

import json

import random

import hashlib

from urllib import parse

import http.client

class BaiduTranslate:

def __init__(self,fromLang,toLang):

self.url = "/api/trans/vip/translate"

self.appid="xxxxx" #申请的账号

self.secretKey = 'xxxxx'#账号密码

self.fromLang = fromLang

self.toLang = toLang

self.salt = random.randint(32768, 65536)

def BdTrans(self,text):

sign = self.appid + text + str(self.salt) + self.secretKey

md = hashlib.md5()

md.update(sign.encode(encoding='utf-8'))

sign = md.hexdigest()

myurl = self.url + \

'?appid=' + self.appid + \

'&q=' + parse.quote(text) + \

'&from=' + self.fromLang + \

'&to=' + self.toLang + \

'&salt=' + str(self.salt) + \

'&sign=' + sign

try:

httpClient = http.client.HTTPConnection('api.')

httpClient.request('GET', myurl)

response = httpClient.getresponse()

html = response.read().decode('utf-8')

html = json.loads(html)

dst = html["trans_result"][0]["dst"]

return True , dst

except Exception as e:

return False , e

if __name__=='__main__':

BaiduTranslate_test = BaiduTranslate('en','zh')

Results = BaiduTranslate_test.BdTrans("Hello, World!")#要翻译的词组

print(Results)

官方demo,应该是在Python2中运行的,Python3中可能无法运行,原因应该是没有安装对应的库和语法的问题,

查找各种资料发现原来Python 2.x中的"httplib"模块在Python 3.x中变成了"http.client",

print语句输出在3.x中要加(), MD5 要换成hashlib,

import hashlib

str1 = "中国是一个伟大的国家,中华民族是一个伟大的民族"

md5 = hashlib.md5()

md5.update(str1.encode("utf-8")) # 注意这里必须要编码,否则报错

print(md5.hexdigest())

修改运行后,结果还是乱码:

增加转码后,显示正常,完整代码如下:

#/usr/bin/env python

#coding=utf8

import json

import http.client #修改引用的模块

import hashlib #修改引用的模块

from urllib import parse

import random

appid = 'xxxx' #你的appid

secretKey = 'xxxx' #你的密钥

httpClient = None

myurl = '/api/trans/vip/translate'

q = 'good'

fromLang = 'en'

toLang = 'zh'

salt = random.randint(32768, 65536)

sign = appid+q+str(salt)+secretKey

m1 = hashlib.md5()

m1.update(sign.encode("utf-8"))

sign = m1.hexdigest()

myurl = myurl+'?appid='+appid+'&q='+parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign

try:

httpClient = http.client.HTTPConnection('api.')

httpClient.request('GET', myurl)

response = httpClient.getresponse()

#转码

html = response.read().decode('utf-8')

html = json.loads(html)

dst = html["trans_result"][0]["dst"]

print(dst)

except Exception as e:

print(e)

finally:

if httpClient:

httpClient.close()

以下是官方demo,大家可以对比下区别:

#/usr/bin/env python

#coding=utf8

import httplib

import md5

import urllib

import random

appid = '' #你的appid

secretKey = '' #你的密钥

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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python如何通过百度翻译API实现翻译功能

本文地址: /jiaoben/python/305465.html

如果觉得《python 百度翻译api_Python如何通过百度翻译API实现翻译功能》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。