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 资源分享扣扣群: 855408893 , 与你分享 Python 企业当下人才需求, 怎么学 Python, 和学习什么内容!
来源: http://www.bubuko.com/infodetail-3113735.html