查单词时进了金山词霸网站,见有开放接口,且非常之简单,仅一个接口。便萌生了写一个命令行工具的想法,已经习惯了使用命令行。代码如下:(因排版的原因,对代码有些许改动,如需要直接下载文件为好。)
#! /usr/bin/python
# coding=GBK
#
# CLI client for iciba.com
#
# FileName: iciba.py
__author__="eidolon"
__date__ ="$2010-4-19 18:25:36$"
import getopt
import sys
import urllib
import xml.sax
from xml.sax.handler import ContentHandler
from getopt import GetoptError
ICIBA_URL = "http://dict-co.iciba.com/api/dictionary.php?"
SEPARATE_LINE = '--------------------------------------------------------'
class ICIBAResponseHandler(ContentHandler):
"""The ICIBA response xml handler.
"""
def __init__(self, pron):
self.enter_node = 0
self.current_node = ''
self.sentence_counter = 0
self.pron = pron
def startElement(self, name, attrs):
self.current_node = name
if name in ('key', 'ps', 'pos', 'acceptation', 'orig', 'trans', 'pron'):
self.enter_node = 1
else:
self.enter_node = 0
if name in ('orig'):
self.sentence_counter += 1
print str(self.sentence_counter) + '.',
if name in ('acceptation'):
print '',
if name in ('ps'):
print '(',
if name in ('sent'):
print SEPARATE_LINE
def endElement(self, name):
if name in ('acceptation', 'orig', 'trans'):
print ''
if name in ('ps'):
print ')'
print SEPARATE_LINE
def characters(self, ch):
if self.enter_node:
if self.current_node in ('key', 'ps', 'pos', 'acceptation', 'orig', 'trans'):
print ch,
elif self.current_node == 'pron' and self.pron:
print 'Pron. URL: ' + ch
def iciba(word, pron=False):
response = urllib.urlopen(ICIBA_URL + urllib.urlencode({'w': word}, 'true'))
xml.sax.parse(response, ICIBAResponseHandler(pron))
response.close()
def usage():
print """USAGE: iciba.py [OPTIONS] <word1>[ <word2> ...]
OPTIONS
-p --with-pron, print prononce
"""
if __name__ == "__main__":
with_pron = False
try:
opts, args = getopt.getopt(sys.argv[1:], 'p', ['with-pron'])
except GetoptError:
usage()
sys.exit(1)
if ('-p', '') in opts: with_pron = True
if ('--with-pron', '') in opts: with_pron = True
if not args:
usage()
sys.exit(1)
else:
index = 1
for tmp in args:
iciba(tmp, with_pron)
if index < len(args):
index += 1
print '\n\n'
sys.exit(0)
可以将 iciba.py 拷贝到 /usr/bin 目录,这样就可以在任意目录使用了。还可以将名字改成 iciba,使用时就可以少打几个字符了:D
第一次写 Python 代码,有此零乱,诸位见谅。
# iciba good
good ( ɡʊd )
--------------------------------------------------------
n. 好, 好事, 慷慨的行为, 好处, 利益
adj. 优良的, 上等的, 虔诚的, 愉快的, 慈善的, 好心的, 有益的
--------------------------------------------------------
1. Good.
好。
--------------------------------------------------------
2. Good girl.
好孩子。
--------------------------------------------------------
3. especially good
尤佳
--------------------------------------------------------
4. " Good Lord! "
" 老天爷! "
--------------------------------------------------------
5. Good quality
好质量
分享到:
相关推荐
仿金山词霸界面,仿金山词霸界面,仿金山词霸界面
Mac版金山词霸,免安装,直接运行,读英文文档遇到不认识的单词查查。
金山词霸除了单词查词功能,大家用得比较多的是金山词霸的生词本功能。 不可否认,金山词霸是个非常棒的英文单词查询工具,但其它功能还是有很多功能不完善。如生词本功能。 每一个人学单词时,学的顺序和内容都...
轻松解决金山词霸无法屏幕取词的故障,轻松解决金山词霸无法屏幕取词的故障
金山词霸本地词典, 在没有网络连接的情况下, 你同样可以使用金山词霸的各项功能. 简单的说就是把网络词典本地化!!! 金山词霸本地词典 金山词霸本地词典
《金山词霸助手2003》 帮你管理金山词霸中金山生词本的单词 不知你在使用金山词霸学习英语或阅读一些外文书时,是否经常习惯将一些英语生单词在用金山词霸翻译的同时就把它放进金山词霸自带的生词本中。但...
今天看科技英语的课件,太多单词不懂了,就开金山词霸用屏幕取词功能。我发现有好多专业词汇的翻译都不是专业术语,于是在网上找。但是找到的都是PDF或TXT什么的,不方便查,于是想自己做。找了好多资料,终于把格式...
官方网站: ...最新版本:V2009.05.25.3.272 下载地址: ...试用期限:30天 网上有很多破解版本,但都对SP3都无效,即使用不了最新的划词翻译... 运行“金山词霸2009牛津版无限试用(by Kigen).exe”即可获取无限试用功能
金山出品:手机版金山词霸3.2版(JAR格式) 支持整句翻译+情景例句 V3.2版本更新: 1.增加17个分类近1500组精品情景会话内容; 2.优化查词数据加载策略; 3.优化程序性能,软件启动及运行速度大幅提升; 4.优化用户...
金山快盘客户端,可以向文件夹一样使用资源,同步资源。
久经考验的金山词霸,本人已验证并还在使用中
利用金山词霸开放性api,通过异步处理类访问网络 获取到json,再通过Gson解析json,获取到金山词霸 的每日一句数据.
谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸谷歌金山词霸
金山词霸 2011免破解版本PowerWord2011.25269.3066
金山词霸 mac 版本金山词霸 mac 版本金山词霸 mac 版本
黑莓手机金山词霸黑莓手机金山词霸黑莓手机金山词霸黑莓手机金山词霸黑莓手机金山词霸黑莓手机金山词霸黑莓手机金山词霸
金山词霸2010的授权文件,里面有详细的使用说明。 不用再怕用不到好软件而发愁了!
本程序可以解密金山词霸的DIC词库,通过它,开发自己的中英词典软件就不成问题了!
金山词霸生词批量导入的工具和操作方法
金山词霸是一款功能强大而又全面的词典软件,金山词霸采用更年轻,时尚的UI设计风格,界面简洁清新,在保证原有词条数目不变基础上,将安装包压缩至原来的1/3,运行内存也大大降低,金山词霸完整收录柯林斯高阶英汉词典;...