# -*- coding: utf-8 -*-
import requests
import random
import json
from hashlib import md5
class BaiduTranslator:
def __init__(self, appid, appkey):
self.appid = appid
self.appkey = appkey
self.endpoint = 'http://api.fanyi.baidu.com'
self.path = '/api/trans/vip/translate'
self.url = self.endpoint + self.path
@staticmethod
def make_md5(s, encoding='utf-8'):
return md5(s.encode(encoding)).hexdigest()
def translate(self, query, from_lang='en', to_lang='zh'):
salt = random.randint(32768, 65536)
sign = self.make_md5(self.appid + query + str(salt) + self.appkey)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
payload = {'appid': self.appid, 'q': query, 'from': from_lang, 'to': to_lang, 'salt': salt, 'sign': sign}
r = requests.post(self.url, params=payload, headers=headers)
result = r.json()
return result
def get_translation(self, query, from_lang='en', to_lang='zh'):
result = self.translate(query, from_lang, to_lang)
translations = [item['dst'] for item in result.get('trans_result', [])]
return translations
# translator = BaiduTranslator(appid='', appkey='')
# query = 'Hello World! This is 1st paragraph.\nThis is 2nd paragraph.'
# translations = translator.get_translation(query, from_lang='en', to_lang='zh')
# print(translations)
# http://api.fanyi.baidu.com/product/113