【Python】Python利用有道翻譯開發API應用示例

程式設計師啟航發表於2019-07-03

Python原始碼是關於Python利用有道翻譯開發API應用示例。這是一個很有意思又簡單的API應用練習題,方法中用到了有道詞典開放API應用,合成的類似於命令列詞典應用Python小程式。功能簡單,但效果卻很好。

這裡要注意的是:有道API的請求頻率限制,限制頻率為每小時1000次,如果超過限制會被封禁。

提示:如果想一直用這個可以自己申請一個KEY,申請的過程非常簡單的,只要替換原有的KEY_FROM和KEY就可以了。

Python利用有道翻譯開發API應用示例,原始碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#www.iplaypy.com
 
import urllib2
import urllib
import simplejson as json
import sys
 
class YoudaoDic():
    """
    有道詞典API
    """
    VERSION = 1.1
 
    URL = 'http://fanyi.youdao.com/openapi.do'
 
    KEY_FROM = 'Dic-EVE'
 
    KEY = '975360059'
 
    TYPE = 'data'
 
    # 可選值xml, json
    DOC_TYPE = 'json'
 
    def translate(self, text):
        """
        翻譯方法,傳入要翻譯的文字,返回結果字典
        """
        # 引數
        params = {'keyfrom': self.KEY_FROM, 'key': self.KEY, 'type': self.TYPE, 'doctype': self.DOC_TYPE, 'version': self.VERSION ,'q': text}
        request = urllib2.urlopen(self.URL, urllib.urlencode(params))
        data = request.read()
        return json.loads(data)
 
    def format_for_command(self, text):
        """
        為命令列格式化翻譯結果
        """
        data = main(text)
        # TODO:格式化字串
        if data:
            print '有道翻譯:'
            print '\t原文字:', data.get('query', text) 
            translation = data.get('translation', None) 
            if translation: 
                for t in translation:
                    print '\t翻  譯:', t
            else:
                '未找到該詞'
 
def main(text):
    if text and text.strip() != '':
        return YoudaoDic().translate(text)
 
if __name__ == '__main__':
    if sys.argv and len(sys.argv) >= 2:
        l = sys.argv[1:]
        YoudaoDic().format_for_command(' '.join(l))
    else:
        print '有道翻譯: \n\t提示:請輸入您要翻譯的詞或句子'

大家在學python的時候肯定會遇到很多難題,以及對於新技術的追求,這裡推薦一下我們的Python資源分享秋秋裙:855408893  內有安裝包,學習視訊資料,免費直播實戰案例。這裡是Python學習者的聚集地,零基礎,進階,都歡迎每日分享一些學習的方法和需要注意的小細節

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2649418/,如需轉載,請註明出處,否則將追究法律責任。

相關文章