星期六, 十一月 10, 2007

Python代码-查询Baidu词典

Baidu词典(http://dict.baidu.com/)是我比较喜欢的一个网络词典,但不喜欢每次都用Web去查,写了下面一段代码可以实现Baidu词典的脚本查询:

#!/usr/bin/env python

import os,sys
import urllib2
import re

class BaiduDict:
    def __init__(self):
        pass
  
    def query(self, word):
        url = "http://www.baidu.com/baidu?ie=utf-8&ct=1048576&word= "
      
        try:
            data = urllib2.urlopen(url+urllib2.quote(word)).read()
        except:
            print "ERROR: can not connect to http://www.baidu.com/ "
            return None
      
        p = re.compile("<ol>.+$", re.M)
        data = data.decode('gb2312').encode('UTF-8')
        match = p.search(data)
        if match:
                result = data[match.start():match.end()]
                result = re.sub("</div>","\n",result)
                result = re.sub("<[^>]+>", " ",result)
        else:
                result = ""
              
        return result

if __name__ == '__main__':
    if len(sys.argv) > 1 :
        qword = sys.argv[1]
        print "================BaiduDict========================"
        baidu=BaiduDict()
        print baidu.query(qword)

如果要查多于一个单词的短语的话,需要在短语外加引号就可以了。

0 Comments:

发表评论

<< Home