Python 使用白嫖網易翻譯 API 進行翻譯

我叫以賞發表於2020-04-11

前言

首先感謝觀眾們對我的博文進行修正,也感謝大家支援!由於上一篇在Python社群上傳的博文是我很久以前製作的,我直接從我的個人網站複製了,所以貼上會出現錯誤,特別是文章中出現的html文字會造成網頁錯誤,我會進行一步一步慢慢修改的,那麼這期呢是純教程,我會一步一步教大家如何白嫖與使用介面。

找介面

網易的翻譯api是需要money的,想要嘗試白嫖就要從“公開”的地方入手。“公開”指什麼呢?“公開”指網頁官方開放的地方(比如:線上翻譯),開啟網頁翻譯,並開始抓包

Python 使用白嫖網易翻譯api進行翻譯

Python 使用白嫖網易翻譯api進行翻譯

Python 使用白嫖網易翻譯api進行翻譯

看來是把翻譯內容直接寫在網址裡,大體看了一下下面的翻譯結果,直接處理會花費很多時間,如果不想直接訪問網頁的話只可以通過有道官方提供的API了,
我找到了官方的API介紹中的API演示

Python 使用白嫖網易翻譯 API 進行翻譯

Python 使用白嫖網易翻譯 API 進行翻譯

並輸入文字開始抓包,

Python 使用白嫖網易翻譯 API 進行翻譯

Python 使用白嫖網易翻譯 API 進行翻譯

果然沒有讓我失望過,但是需要注意一點,這個介面必須使用POST訪問,只是個DEMO是沒有網易提供的應用ID與Key的,不可以頻繁呼叫,結合官方的API文件

Python 使用白嫖網易翻譯 API 進行翻譯

就可以開始寫程式碼了。

寫程式碼

由於介面是允許允許多語言翻譯的,我先寫一個簡單的程式進行呼叫:

import requests

if __name__ == '__main__':
    print('BY我叫以賞 And Pikachu!網易api介面翻譯文字!')
    Q = input('輸入欲翻譯文字:')
    From = input('請輸入原文字語種(為空或沒有輸入採用自動識別):')
    if From.strip() == '':
        From = 'Auto'
    To = input('請輸入翻譯文字語種(為空或沒有輸入採用自動識別):')
    if To.strip() == '':
        To = 'Auto'
    data = {
        'q' : Q,
        'from' : From,
        'to' : To
    }
    information = requests.post('https://aidemo.youdao.com/trans',data)
    print(information.json())

Python 使用白嫖網易翻譯 API 進行翻譯

沒有問題,加工一下就可以使用了。

import requests

if __name__ == '__main__':
    print('BY我叫以賞 And Pikachu!網易api介面翻譯文字!')
    while True:
        Q = ''
        while Q.strip() == '' or len(Q.strip()) > 1000:
            Q = input('輸入欲翻譯文字:')
            if Q.strip() == '':
                print('欲翻譯文字不可以為空!')
            if len(Q.strip()) > 1000:
                print('欲翻譯文字長度不可以超過1000!')
        print('欲翻譯文字 => %s' % (Q))
        From = input('請輸入原文字語種(為空或沒有輸入採用自動識別):')
        if From.strip() == '':
            From = 'Auto'
        print('原文字語種 => %s' % ({'Auto': 'Auto(自動識別)'}.get(From, From)))
        To = input('請輸入翻譯文字語種(為空或沒有輸入採用自動識別):')
        if To.strip() == '':
            To = 'Auto'
        print('翻譯文字語種 => %s' % ({'Auto': 'Auto(自動識別)'}.get(To, To)))
        data = {
            'q': Q,
            'from': From,
            'to': To
        }
        information = requests.post('https://aidemo.youdao.com/trans', data)
        json = information.json()
        errorCode = json['errorCode']
        if errorCode != '0':
            print('出現錯誤!返回的狀態碼為:%s' % (errorCode))
            break
        # tSpeakUrl = json['tSpeakUrl']
        # speakUrl = json['speakUrl']
        # web = json['web']
        query = json['query']
        translation = json['translation']
        print('原文字:' + query)
        for x in range(len(translation)):
            print('翻譯結果' + str(x + 1) + " : " + translation[x])

更多請自行新增,官方參考連結:https://ai.youdao.com/DOCSIRMA/html/%E8%87...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章