百度翻译接口调用

目录

一、百度开发者平台账号申请

先要申请一个开发者账号,然后获取appid和secretKey,这两个参数是调用百度翻译接口的必要参数。

地址:开发者中心信息

二、百度翻译接口调用

import requests
import random
import hashlib
import urllib
import json


class BaiduTranslate(object):
    def __init__(self, word):
        # 你要翻译的元素
        self.q = word
        self.fromLang = 'en'
        self.toLang = 'zh'
        self.baidu_translate = 'https://api.fanyi.baidu.com'
        self.translate_api_url = '/api/trans/vip/translate'

        # 百度开发者配置信息
        self.appid = '***'
        self.secretKey = '***'

        # 开发配置
        self.salt = random.randint(32768, 65536) 
        self.sign = self.appid + self.q + str(self.salt) + self.secretKey
        m1 = hashlib.md5()
        m1.update(self.sign.encode('utf-8'))
        self.sign = m1.hexdigest()
        self.my_url = self.translate_api_url + '?appid=' + self.appid + '&q=' + \
                      urllib.request.quote(self.q) +\
                      '&from=' + self.fromLang + '&to=' + self.toLang +\
                      '&salt=' + str(self.salt) + '&sign=' + self.sign

    def en_translate_zh(self):
        re = requests.request('post', self.baidu_translate + self.my_url)
        print('\n\t re.text', re.text)
        re_json = json.loads(re.text)
        print('\n\t re_json', re_json)
        print('\n\t',re_json['trans_result'][0]['dst']) # [0]表示第一个翻译结果,dst表示翻译结果
        return re_json['trans_result'][0]['dst']

def readfromword(filename):
    filename = filename + '.txt'
    with open(filename, 'r') as f:
        # realines()方法读取所有行,返回一个列表
        lines = f.readlines()
        # 拼接列表成为一个字符串
        word = ''.join(lines)
        # word中去掉/n换行符
        word = word.replace('\n', ' ')
        print(word)
    return word


# bt.en_translate_zh()结果输出到txt文件
def write2txt(filename, word):
    filename = filename + '.txt'
    with open(filename, 'w') as f:
        f.write(word)


if __name__ == "__main__":
    filename= 'test'
    test=readfromword(filename)
    bt = BaiduTranslate(test)
    bt.en_translate_zh()
    write2txt('output', str(bt.en_translate_zh()))

这个代码主要实现了以下功能,首先readfromword()函数读取txt文件,然后将txt文件中的内容传入BaiduTranslate()类中,然后调用en_translate_zh()函数,得到翻译结果,使用write2txt函数将翻译结果输出到txt文件中。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦