翻译API HTTP地址

http://api.fanyi.baidu.com/api/trans/vip/translate

您需要向该地址通过POST或GET方法发送下列字段来访问服务

字段名

类型

必填参数

描述

备注

q

TEXT

Y

请求翻译query

UTF-8编码

from

TEXT

Y

翻译源语言

语言列表(可设置为auto)

to

TEXT

Y

译文语言

语言列表(不可设置为auto)

appid

INT

Y

APP ID

可在管理控制台查看

salt

INT

Y

随机数


sign

TEXT

Y

签名

appid+q+salt+密钥 的MD5值

返回结果是json格式,包含以下字段

字段名

类型

描述

from

TEXT

翻译源语言

to

TEXT

译文语言

trans_result

MIXED LIST

翻译结果

src

TEXT

原文

dst

TEXT

译文

生成sign

>拼接字符串1

拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678

得到字符串1 =2015063000000001apple143566028812345678

>计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)


以上为调用参数和格式

这是我写的url请求

http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=auto&to=zh&appid=20160413000018571&salt=1435660288&sign=39c436658c2f20730931b5139094c0a7

这是返回内容json(终于知道这种格式叫什么名了)

{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]}
\u82f9\u679c为unicode编码转换中文为苹果
# coding=utf-8

import http.client  #python2 中为httplib等价于python3中的http.client
#import md5
import hashlib
import urllib
import random

appid = '20151113000005349'
secretKey = 'osubCEzlGjzvw8qdQc41'

 
httpClient = None
myurl = '/api/trans/vip/translate'
q = 'hello'
fromLang = 'en'
toLang = 'zh'
salt = random.randint(32768, 65536)

sign = appid+q+str(salt)+secretKey
#m1 = md5.new()
#m1.update(sign)
#sign = m1.hexdigest()

print(type(sign))

ml = hashlib.md5()
# Tips
# 此处必须声明encode
# 若写法为hl.update(str)  报错为: Unicode-objects must be encoded before hashing
ml.update(sign.encode(encoding='utf-8'))
sign = ml.hexdigest()


myurl = myurl+'?appid='+appid+'&q='+urllib.request.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()
    print(eval(response.read().decode('utf-8'))['trans_result'][0]['dst']) #


except Exception as  e:
    print(e)
finally:
    if httpClient:
        httpClient.close()