命令行实现有道英汉字典

来源:互联网 发布:学英语口语软件下载 编辑:程序博客网 时间:2024/06/05 01:54

原理:利用网页有道词典,进行网页解析。

废话不多说,上代码。

PS: 用的是python3.3

把代码保存为yodo.py放到~/python/scripts 下即可在命令行使用。

使用效果图:


import urllib.requestimport re,osfrom sys import argvregulation = '''规则:1. 只准输入英文和数字。2. 数字最大不超过10^19.3. 由于argv的关系,我只接收一个单词。4. 可以接收有连字符的单词。'''def lookUp(word):    if word == None:        pass    else:            ex_url = 'http://dict.youdao.com/search?le=eng&q=MYWORD&keyfrom=dict.top'        url = ex_url.replace('MYWORD',word)        f = urllib.request.urlopen(url).read().decode()        r= r'<div class="trans-container">.*?<li>(.*?)</li>.*?</div>'        holders = re.findall(r,f,re.S)        meaning = holders[0]        print(meaning)    def badInput(word):    if word == '-help':        print(regulation)                  r1 = r'[^\u4e00-\u9fa5]'                       # 不能是汉字    r2 = r'^[a-zA-Z0-9]+\-?[a-zA-Z0-9]+$'          # 必须是字母数字空格和连字符,必须单词开头,单词结尾。    if re.search(r1,word) and re.search(r2,word):  # 满足r1, r2才能返回。        return word    else:        print('请检查拼写后重新输入。')    word = argv[1]while 1:    word = badInput(word)    try:        lookUp(word)    except:            print('未查询到该词,请重新输入。')    word = input('输入单词 >>> ')


0 0