
作者源代码里面没有对音标特殊字符处理,我在使用的过程觉得不是很爽,就动手修改了一下.
在debian,gcc4.2环境下编译通过,ubuntu应该没问题.

代码: 全选
#!/usr/bin/python
#coding=utf-8
import urllib
import sys
#import xml.dom.minidom
import re
#是否输出例句
eg=True
#音标字符
prons = [['æ', chr(0xc3)+chr(0xa6)], ['ʊ', chr(0xca)+chr(0x8a)],
['ə', chr(0xc9)+chr(0x99)], ['θ', chr(0xce)+chr(0xb8)],
['ð', chr(0xc3)+chr(0xb0)], ['ʌ', chr(0xca)+chr(0x8c)],
['ʃ', chr(0xca)+chr(0x83)], ['ɑ', chr(0xc9)+chr(0x91)],
['ˌ', chr(0xcb)+chr(0x8c)], ['ɛ', chr(0xc9)+chr(0x9b)],
['ʒ', chr(0xca)+chr(0x92)], ['ŋ', chr(0xc5)+chr(0x8b)],
['ɔ', chr(0xc9)+chr(0x94)]]
def main():
if len(sys.argv) >= 2:
word = " ".join(sys.argv[1:])
xmls = urllib.urlopen('http://dict.cn/ws.php?utf8=true&q=' + urllib.quote(word)).read()
print re.search(r'<key>(?P<key>.*?)</key>', xmls, re.M|re.I|re.S|re.U).group('key'),
pron = re.search(r'<pron>(?P<pron>.*?)</pron>', xmls, re.M|re.I|re.S|re.U).group('pron')
for c in prons:
pron = pron.replace(c[0], c[1])
print '[%s]'% pron
print re.search(r'<def>(?P<test>.*?)</def>', xmls, re.M|re.I|re.S|re.U).group('test')
if eg:
print
origs=re.findall(r'<orig>(?P<orig>.*?)</orig>', xmls, re.M|re.I|re.S|re.U)
trans=re.findall(r'<trans>(?P<trans>.*?)</trans>', xmls, re.M|re.I|re.S|re.U)
for i in range(len(origs)):
print "%d. %s"%(i+1,origs[i])
print "%s %s"%(' '*((i+1)/10+1),trans[i])
else:
help()
def help():
print 'usage:dict.py [word]'
if __name__ == '__main__':
main()