美文网首页pythonpython
python调用百度翻译接口

python调用百度翻译接口

作者: akubaba | 来源:发表于2017-05-25 16:08 被阅读0次

    一、申请APIKey

    到百度翻译开放平台申请APIKey,链接:http://api.fanyi.baidu.com/api/

    二、关于生成链接

    下面内容均整理自百度翻译开放平台接入文档。



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


    三、代码实例

    1、先写一个能生产md5值的函数

    import hashlib
    def md5(str):#生成md5
        m = hashlib.md5()
        m.update(str)
        return m.hexdigest()
    

    2、英译中

    def en_to_zh(src):#英译中
        ApiKey = "xxxxxxxxxxxxxxxxx"
        pwd = "***************"
        salt = "1435660288"
        all = ApiKey + src + salt + pwd
        sign = md5(all)
        src=src.replace(' ','+')#生成sign前不能替换
        url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q="\
              + src + "&from=en&to=zh&appid=" + ApiKey + \
              "&salt=" + salt + "&sign=" + sign
        try:
            req = urllib2.Request(url)
            con = urllib2.urlopen(req)
            res = json.load(con)
            if 'error_code' in res:
                print 'error:', res['error_code']
                return res['error_msg']
            else:
                dst = res['trans_result'][0]['dst']
                return dst
        except:
            return "出错了"
    

    3、中译英

    def zh_to_en(src):#中译英
        ApiKey = "xxxxxxxxxxxxxxxxx"
        pwd = "***************"
        salt = "1435660288"
        all = ApiKey + src + salt + pwd
        sign = md5(all)
        src=src.replace(' ','+')#生成sign前不能替换
        url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q="\
              + src + "&from=zh&to=en&appid=" + ApiKey + \
              "&salt=" + salt + "&sign=" + sign
        try:
            req = urllib2.Request(url)
            con = urllib2.urlopen(req)
            res = json.load(con)
            return res['trans_result'][0]['dst']
        except:
            return "出错了"
    

    完整代码见下:

    #-*-coding:utf-8-*-
    import json
    import urllib2
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    import hashlib
    
    def md5(str):#生成md5
        m = hashlib.md5()
        m.update(str)
        return m.hexdigest()
    
    def en_to_zh(src):#英译中
        ApiKey = "xxxxxxxxxxxxxxxxx"
        pwd = "***************"
        salt = "1435660288"
        all = ApiKey + src + salt + pwd
        sign = md5(all)
        src=src.replace(' ','+')#生成sign前不能替换
        url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q="\
              + src + "&from=en&to=zh&appid=" + ApiKey + \
              "&salt=" + salt + "&sign=" + sign
        try:
            req = urllib2.Request(url)
            con = urllib2.urlopen(req)
            res = json.load(con)
            if 'error_code' in res:
                print 'error:', res['error_code']
                return res['error_msg']
            else:
                dst = res['trans_result'][0]['dst']
                return dst
        except:
            return "出错了"
    
    def zh_to_en(src):#中译英
        ApiKey = "xxxxxxxxxxxxxxxxx"
        pwd = "***************"
        salt = "1435660288"
        all = ApiKey + src + salt + pwd
        sign = md5(all)
        src=src.replace(' ','+')#生成sign前不能替换
        url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q="\
              + src + "&from=zh&to=en&appid=" + ApiKey + \
              "&salt=" + salt + "&sign=" + sign
        try:
            req = urllib2.Request(url)
            con = urllib2.urlopen(req)
            res = json.load(con)
            return res['trans_result'][0]['dst']
        except:
            return "出错了"
    
    def main():
        choice = raw_input("English to Chinese:Enter 1 \n"
                          "Chinese to English:Enter 2 \n"
                          "Enter:")
        if choice == "1":
            while True:
                word = raw_input("Input the word you want to search:")
                print "translate......"
                target = en_to_zh(word)
                print target
        else:
            while True:
                word = raw_input("Input the word you want to search:")
                print "translate......"
                target = zh_to_en(word)
                print target
    
    if __name__ == '__main__':
        main()
    

    相关文章

      网友评论

        本文标题:python调用百度翻译接口

        本文链接:https://www.haomeiwen.com/subject/nvrzxxtx.html