爬虫百度api翻译

翻译API HTTP地址

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

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

字段名类型必填参数描述备注
qTEXTY请求翻译queryUTF-8编码
fromTEXTY翻译源语言语言列表(可设置为auto)
toTEXTY译文语言语言列表(不可设置为auto)
appidINTYAPP ID可在管理控制台查看
saltINTY随机数
signTEXTY签名appid+q+salt+密钥 的MD5值
返回结果是json格式,包含以下字段

字段名类型描述
fromTEXT翻译源语言
toTEXT译文语言
trans_resultMIXED LIST翻译结果
srcTEXT原文
dstTEXT译文

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值