原理:利用网页有道词典,进行网页解析。
废话不多说,上代码。
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('输入单词 >>> ')