无名商城论坛

搜索
查看: 383|回复: 0

[其他技术] 【HC】Python 自动获取百度翻译

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 18:35:00 | 显示全部楼层 |阅读模式


import http.client
import hashlib
import urllib.parse
import random
import json


def baiduTranslate(q, fromLang="en", toLang="zh"):
    appid = '' #你的appid(这里是必填的, 从百度 开发者信息一览获取)
    secretKey = '' #你的密钥(这里是必填的, 从百度 开发者信息一览获取)


    httpClient = None
    myurl = '/api/trans/vip/translate'
    salt = random.randint(32768, 65536)
    sign = appid + q + str(salt) + secretKey
    m1 = hashlib.md5()
    m1.update(sign.encode())
    sign = m1.hexdigest()
    myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
        q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign
    result = ""
    try:
        httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)
        # response是HTTPResponse对象
        response = httpClient.getresponse()
        result = response.read()
        r = json.loads(result)
        result = r["trans_result"][0]['dst']
    except Exception as e:
        result = ""
    finally:
        if httpClient:
            httpClient.close()

    return result


def trans():
    while True:
        q = input("输入要翻译的内容:")
        if (q != "exit"):
            r = baiduTranslate(q)

            print(r)
        else:
            break


if __name__ == '__main__':
    trans()


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表