其实就是用response,urllib库向百度翻译请求网页,再用json,hashlib来解析获取到的数据。不过只是用python页面来充当交互页面,功能跟在百度翻译翻译文字没有出入。里面代码很多并没有完善,只是能用的程度,不过扩展性很好,下面来展示具体操作:

首先最重要的是开启百度翻译的开发者功能,下面我来将如何开通

首先,进入这个网址,参考它给的帮助,来注册一个百度翻译开发平台的账户。然后,申请一个高级版的通用文本翻译,里面填的随便填填就行,很容易过的。最后获取它给的appid和密钥。

https://fanyi-api.baidu/doc/21


使用您的百度账号登录百度翻译开放平台;
注册成为开发者,获得 APPID ;
进行开发者认证(如仅需标准版可跳过);
开通通用翻译API服务:开通链接;
参考技术文档和 Demo 编写代码。


它要的实例请求参数
q=apple
from=en
to=zh
appid=2015063000000001(请替换为您的appid)
salt=1435660288(随机码)
平台分配的密钥: 12345678
把上面的弄好,开始进行编写代码操作,首先导入所需库,不必多说,没有的用pip自行安装一下
import hashlib
import random
import json
from urllib.parse import urlencode
import requests
import sys
然后,定义一个验证函数
def build_params(query, from_lang=fromlang__, to_lang=tolang__):
    appid = '20250107002247015'  
    secret_key = 'zSMWEKhPRrOpKrmWZfvi'  

    salt = str(random.randint(32768, 65536))
    sign = appid + query + salt + secret_key
    m1 = hashlib.md5()
    m1.update(sign.encode('utf-8'))
    sign = m1.hexdigest()

    params = {                   
        'q': query,
        'from': from_lang,
        'to': to_lang,
        'appid': appid,
        'salt': salt,
        'sign': sign
    }

    return params
再定义一个爬数据的函数
def translate(query, from_lang=fromlang__, to_lang=tolang__):    
    url = 'https://fanyi-api.baidu/api/trans/vip/translate'   
    params = build_params(query, from_lang, to_lang)

    response = requests.get(url, params=params)
    if response.status_code == 200:     
        result = response.json()
        if 'trans_result' in result:    
            translations = [item['dst'] for item in result['trans_result']]
            return '\n'.join(translations)
        else:
            print("Error:", result.get('error_msg', 'Unknown error'))
            return None
    else:
        print(f"HTTP Error: {response.status_code}")  
        return None
执行体,不要在意里面的操作
if __name__ == '__main__':
    while True:
        print('-----------------------------------------')   
        print('【1 自动检测】 【2 中文】 【3 英文】 【4 日文】')
        pd_1 = int(input('输入语言(输入数字序号):'))
        if pd_1 == 1:
            fromlang__ = 'auto'
        elif pd_1 == 2:
            fromlang__ = 'zh'
        elif pd_1 == 3:
            fromlang__ = 'en'
        elif pd_1 == 4:
            fromlang__ = 'jp'
        else:
            pd__ = 0

        print(' · · · · · ')
        print('【1 英文】 【2 中文】 【3 日文】 【4 俄文】 【5 韩文】 【6 法文】')
        pd_2 = int(input('输出语言(输入数字序列):'))
        if pd_2 == 1:
            tolang__ = 'en'
        elif pd_2 == 2:
            tolang__ = 'zh'
        elif pd_2 == 3:
            tolang__ = 'jp'
        elif pd_2 == 4:
            tolang__ = 'ru'
        elif pd_2 == 5:
            tolang__ = 'kor'
        elif pd_2 == 6:
            tolang__ = 'fra'
        else:
            pd__ = 0

        if pd__ == 1:
            print(' · · · · · ')
            text_to_translate = input("请输入要翻译的文字:")
            translated_text = translate(text_to_translate, from_lang=fromlang__, to_lang=tolang__) 
            if translated_text is not None:
                print(' · · · · · ')
                print(f"翻译结果:\n{translated_text}")
                print(' · · · · · ')
                exit1 = int(input('是否退出(1退出 2继续):'))  
                if exit1 == 1:
                    print('已退出')
                    sys.exit(0)

        elif pd__ == 0:       
            print(' · · · · · ')
            print('输入有误!')
            print('已退出')
            sys.exit(0)
执行结果
-----------------------------------------
【1 自动检测】 【2 中文】 【3 英文】 【4 日文】
输入语言(输入数字序号):2
 · · · · · 
【1 英文】 【2 中文】 【3 日文】 【4 俄文】 【5 韩文】 【6 法文】
输出语言(输入数字序列):3
 · · · · · 
请输入要翻译的文字:没事吧,我可是最强的,看招,【神明在上·无限·无垠黑洞】
 · · · · · 
翻译结果:
大丈夫か、私は最強だ、見て、【神は上にいる・無限・無限のブラックホール】
 · · · · · 
是否退出(1退出 2继续):1
已退出

完整代码

import hashlib
import random
import json
from urllib.parse import urlencode
import requests
import sys

tolang__ = 'auto'   #变量
fromlang__ = 'en'
pd__ = 1

def build_params(query, from_lang=fromlang__, to_lang=tolang__):   #请求的变量的函数
    appid = '20250107002247015'  # 替换为你的百度翻译给的App ID
    secret_key = 'zSMWEKhPRrOpKrmWZfvi'  # 替换为你的百度翻译给的密钥

    salt = str(random.randint(32768, 65536))
    sign = appid + query + salt + secret_key
    m1 = hashlib.md5()
    m1.update(sign.encode('utf-8'))
    sign = m1.hexdigest()

    params = {                   #一些百度翻译要求的数据
        'q': query,
        'from': from_lang,
        'to': to_lang,
        'appid': appid,
        'salt': salt,
        'sign': sign
    }

    return params


def translate(query, from_lang=fromlang__, to_lang=tolang__):     #主体函数
    url = 'https://fanyi-api.baidu/api/trans/vip/translate'   #百度翻译专门连接的网址
    params = build_params(query, from_lang, to_lang)

    response = requests.get(url, params=params)
    if response.status_code == 200:     #连接成功的话执行
        result = response.json()
        if 'trans_result' in result:    #许多语法函数功能可以自搜讲解,在此不多赘述
            translations = [item['dst'] for item in result['trans_result']]
            return '\n'.join(translations)
        else:
            print("Error:", result.get('error_msg', 'Unknown error'))
            return None
    else:
        print(f"HTTP Error: {response.status_code}")   #错误原因
        return None

if __name__ == '__main__':
    while True:
        print('-----------------------------------------')   #不要在意,能用的程度
        print('【1 自动检测】 【2 中文】 【3 英文】 【4 日文】')
        pd_1 = int(input('输入语言(输入数字序号):'))
        if pd_1 == 1:
            fromlang__ = 'auto'
        elif pd_1 == 2:
            fromlang__ = 'zh'
        elif pd_1 == 3:
            fromlang__ = 'en'
        elif pd_1 == 4:
            fromlang__ = 'jp'
        else:
            pd__ = 0

        print(' · · · · · ')
        print('【1 英文】 【2 中文】 【3 日文】 【4 俄文】 【5 韩文】 【6 法文】')
        pd_2 = int(input('输出语言(输入数字序列):'))
        if pd_2 == 1:
            tolang__ = 'en'
        elif pd_2 == 2:
            tolang__ = 'zh'
        elif pd_2 == 3:
            tolang__ = 'jp'
        elif pd_2 == 4:
            tolang__ = 'ru'
        elif pd_2 == 5:
            tolang__ = 'kor'
        elif pd_2 == 6:
            tolang__ = 'fra'
        else:
            pd__ = 0

        if pd__ == 1:
            print(' · · · · · ')
            text_to_translate = input("请输入要翻译的文字:")
            translated_text = translate(text_to_translate, from_lang=fromlang__, to_lang=tolang__)  #获取文本
            if translated_text is not None:
                print(' · · · · · ')
                print(f"翻译结果:\n{translated_text}")
                print(' · · · · · ')
                exit1 = int(input('是否退出(1退出 2继续):'))  #输入正确可手动退出或继续
                if exit1 == 1:
                    print('已退出')
                    sys.exit(0)

        elif pd__ == 0:       #输入有误自动退出
            print(' · · · · · ')
            print('输入有误!')
            print('已退出')
            sys.exit(0)

最后,谢谢大家观看和支持!如果帮助到你的话,是我莫大的荣幸!小白制作,不喜勿喷,如有问题,请大家多多包涵!