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   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值