dict查字典程序,效果还可以
-
- 帖子: 1
- 注册时间: 2008-12-06 2:13
dict查字典程序,效果还可以
作者源代码里面没有对音标特殊字符处理,我在使用的过程觉得不是很爽,就动手修改了一下.
在debian,gcc4.2环境下编译通过,ubuntu应该没问题.
- 附件
-
- dict.tar.gz
- (7.58 KiB) 已下载 205 次
-
- 帖子: 1
- 注册时间: 2008-12-28 15:25
Re: dict查字典程序,效果还可以
对源程序进行了适当修改,去掉了mp3的链接地址,修正部分音标显示的问题,同时把音标括起来,使用起来更舒服些。
- 附件
-
- dict2.tar.bz2
- (8.08 KiB) 已下载 198 次
-
- 帖子: 8
- 注册时间: 2008-11-12 8:13
Re: dict查字典程序,效果还可以
下来试一下
。。。。。。。。。。
。。。。。。。。。。
- photor
- 论坛版主
- 帖子: 11004
- 注册时间: 2008-04-26 12:41
-
- 帖子: 22
- 注册时间: 2006-09-10 15:18
Re: dict查字典程序,效果还可以
之前一直用的是一个Python脚本,也是从dict.cn获取信息,但是没有音标。根据楼主的源码,添加了音标支持。
代码: 全选
#!/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()