Python 調用百度翻譯api實現翻譯 在虛擬機 Ubuntu下可用

今天要做一個翻譯的模塊,但是在虛擬機下測試發現,百度給的demo無法運行,網上很多教程都無法使用

我發現稍微改動一下就可以了,

注意如果是NAT模式,需要使用主機ip ,代理或者其他方式

import os
import sys
import uuid
import requests
import hashlib
import time
import importlib
import json
from Py4Js import *
import requests

import http.client
import urllib
import random
importlib.reload(sys)
#sys.setdefaultencoding('utf-8')



def baidu_translate(content):
    appid = '你的appid'
    secretKey = '你的密鑰'
    httpClient = None
    myurl = '/api/trans/vip/translate'
    q = content
    fromLang = 'auto' # 源語言
    toLang = 'zh'   # 翻譯後的語言
    salt = random.randint(32768, 65536)
    sign = appid + q + str(salt) + secretKey
    sign = hashlib.md5(sign.encode()).hexdigest()
    myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
        q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
        salt) + '&sign=' + sign
    #print('api.fanyi.baidu.com'+myurl)
    
 
    try:
        response = requests.get('https://api.fanyi.baidu.com'+myurl)
        a = json.loads(response.content)
        #print(a)
        '''
        httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)
        # response是HTTPResponse對象
        response = httpClient.getresponse()
        jsonResponse = response.read().decode("utf-8")# 獲得返回的結果,結果爲json格式
        js = json.loads(jsonResponse)  # 將json格式的結果轉換字典結構
        dst = str(js["trans_result"][0]["dst"])  # 取得翻譯後的文本結果
        print(dst) # 打印結果
        '''
        res = ''
        for k in a['trans_result']:
            res += k['dst']
        return res
    except Exception as e:
        print(e)
        return '' 
    finally:
        if httpClient:
            httpClient.close()

    
 
def baidu_trans_fin(content):
    res=""
    if(len(content)>3000):
        while(len(content)>3000):
            res+=baidu_translate(content[0:2999])
            content=content[3000:]
            
    else:
        res=baidu_translate(content)
    print("翻譯結果爲:"+res)
    return res   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章