原出处:
http://www.oschina.net/code/snippet_70229_2366
不同的是作者原来使用sys.argv来获取要查询的单词,还写了帮助文档,而我比较懒,还是喜欢用raw_input多一点,也不用导入sys模块了;另外原来的代码会有中文乱码现象,以及例句中的关键词有符号的读取,我分别采用decode方法和replace方法解决了;再另外设置成while循环,这样的话可以不用每次都手动输入***.py来运行了。python写什么东西真是行云流水一般顺畅。
其实我果然还是懒啊…这种东西本来也可以用wxpython做一个简陋的图形界面来的好一点吧…
截图:

代码:
#!/usr/bin/env python
# -*- coding=gb2312 -*-
import urllib
import re
#是否输出例句
eg=True
def main():
word = raw_input('输入单词:')
xmls = urllib.urlopen('http://dict.cn/ws.php?utf8=true&q=' + urllib.quote(word)).read()
print
print re.search(r'<def>(?P<test>.*?)</def>', xmls, re.M|re.I|re.S|re.U).group('test').decode('utf8')
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].decode('utf8').replace('<em>','').replace('''</em>''',''))
print "%s %s"%(' '*((i+1)/10+1),trans[i].decode('utf8').replace('<em>','').replace('''</em>''',''))
print ''
if __name__ == '__main__':
while True:
main()
懒人版Python单词查询工具
本文介绍了一个简化版的Python脚本,用于查询在线词典。作者通过使用raw_input替代sys.argv,解决了中文乱码问题,并实现了循环运行功能,提高了用户体验。同时,通过decode和replace方法处理了特殊字符,使得查询结果更加清晰易读。
&spm=1001.2101.3001.5002&articleId=6824165&d=1&t=3&u=c70b0978e7a1400db198fba9db20c9a4)
300

被折叠的 条评论
为什么被折叠?



