python调用百度翻译api+离线语种检测

百度翻译api调用(具体参考的哪篇博文找不到了,好几篇太像了,原作者留意到可以告知我改转载附上链接):

import urllib, hashlib
import random
import requests, sys

def getTransText(in_text):
    q = in_text
    fromLang = 'auto'  # 翻译源语言=自动检测
    toLang1 = 'en'  # 译文语言 = 英文

    appid = ''  # APP ID
    salt = random.randint(32768, 65536)
    secretKey = ''  # 密钥

    # 生成sign
    sign = appid + q + str(salt) + secretKey
    m1 = hashlib.md5(sign.encode('utf-8'))
    sign = m1.hexdigest()
    # 百度翻译有http和https两个api入口,https的翻译接口需要更换url
    pre = '/api/trans/vip/language'
    mypre = pre + '?appid=' + appid + '&q=' + q + '&from=' + fromLang + '&to=' + toLang1 + '&salt=' + str(
        salt) + '&sign=' + sign
    myurl = '/api/trans/vip/translate'
    myurl = myurl + '?appid=' + appid + '&q=' + q + '&from=' + fromLang + '&to=' + toLang1 + '&salt=' + str(
        salt) + '&sign=' + sign
    mypreurl = "http://api.fanyi.baidu.com" + mypre
    url = "http://api.fanyi.baidu.com" + myurl

    url = url.encode('utf-8')
    print(url)
    res = requests.get(url)

    try:
        res = eval(res.text)
        return (res["trans_result"][0]['dst'])
    except:
    	# 没有得到翻译结果返回原字串
        return in_text

langid离线语种检测(langid):
pip install langid

import langid
lang = langid.classify(string)

注意点:结果以json往文件写入时要添加ensure_ascii=False,避免日语等没有成功翻译返回的结果写入文件乱码。

wline = json.dumps(dic, ensure_ascii=False)+'\n'
fw.write(wline)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值