命令行实现有道英汉字典

本文介绍了一种使用Python实现的简易网页版有道词典查询工具,通过解析有道词典网页来获取单词释义。项目适用于命令行环境,支持带有连字符的单词查询,并具备基本的输入校验功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

废话不多说,上代码。

PS: 用的是python3.3

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

使用效果图:


import urllib.request
import re,os
from sys import argv

regulation = '''
规则:
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('输入单词 >>> ')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值