WordSearch英语单词词义搜索工具
英语单词词义搜索小工具:
有5个功能:
1.Definition(单词定义-英英释义)
2.WordFamily(形近词)
3.Synonym(同义词)
4.Antonym(反义词)
5.ContextualSentence(例句)
将所需要查询的单词分行填写在'Word.txt'文件中后.
运行该.py文件, 选择需要生成相关内容即可
import requests
import time
from bs4 import BeautifulSoup
import re
import sys
# 修改递深限制
sys.setrecursionlimit(100000)
# 单词文件所在位置
# 单词间回车分隔,例:
# achieve
# acquisition
# administration
# affect
# appropriate
# aspects
# assistance
# categories
# chapter
# commission
WORDS_PATH = './Word.txt'
# 网页头
URL = 'http://dict.cn/'
# 单词列表
WORDS = []
# 内容列表
CONTENT = []
# 输入时候注释
# SELECT_NUM = 4
SELECT_NUM_DICT = {
1: 'Definition',
2: 'WordFamily',
3: 'Synonym',
4: 'Antonym',
5: 'ContextualSentence'
}
# 正则表达式
STR_MATCH_DICT = {
1: r'.?([a-zA-z].*)\;',
2: r'\/(\b[a-zA-Z]+\b)\"',
3: r'\/(\b[a-zA-Z]+\b)\"',
4: r'\/(\b[a-zA-Z]+\b)\"',
5: r'\<li\>(.*?)\<br\/\>',
}
# 搜索规则
QUERY_RULE_DICT = {
1: '.section.def .layout.en ol[slider="3"] li',
2: '.section.rel .layout.nwd a',
3: '.section.rel .layout.nfo ul[slider="12"] li a',
4: '.section.rel .layout.nfo ul[slider="12"] li a',
5: '.section.sent .layout.sort ol[slider="2"] li'
}
# 5: '.section.def .layout.en ol[slider="3"] li'
def run(str_match, query_rule):
'''遍历获得每个单词的相应属性'''
# 获取网站元素
# 创建链接
rs = requests.Session()
# 遍历获得每个单词的元素
for word in WORDS:
word_url = URL + word
res = rs.get(word_url)
# 获取链接源代码
soup = BeautifulSoup(res.text, 'lxml')
# 查询内容
element = soup.select(query_rule)
element = str(element)
element = re.findall(str_match, element)
# element = str(element)
if element:
# 句子选最短
if SELECT_NUM == 5:
element = min(element, key=len)
# 近义词选最前
elif SELECT_NUM == 1 or SELECT_NUM == 2 or SELECT_NUM == 3:
element = element[0]
# 反义词选最后
elif SELECT_NUM == 4:
element = element[-1]
else:
element = ''
# 添加任意字符串, 以区分单词是否找到相关释义,如不需要字符串为空''即可
sign = 'SSS:'
content = sign + element
CONTENT.append(content)
def show():
'''显示选择菜单'''
print('请选择需要产生的单词内容:\n'
'\n1.Definition(单词定义)\n'
'\n2.WordFamily(形近词)\n'
'\n3.Synonym(同义词)\n'
'\n4.Antonym(反义词)\n'
'\n5.ContextualSentence(句子)\n'
'')
select_num = int(input('请输入你的选择:'))
return select_num
def write():
'''写入保存的内容'''
file = SELECT_NUM_DICT[SELECT_NUM]
date = time.strftime('%Y%m%d%H')
file_name = file + date + '.txt'
print('写入')
jump = str('\r')
# 写入
with open(file_name, 'w+') as f:
for i in CONTENT:
f.writelines(i)
f.write(jump)
def mean():
'''获取单词'''
# 获取单词
with open(WORDS_PATH) as f:
for word in f.readlines():
word = word.replace('\n', '')
WORDS.append(word)
if len(WORDS) < 1:
print('无法获取单词')
return
# 显示选择菜单
select_num = show()
# 修改全局变量
global SELECT_NUM
SELECT_NUM = select_num
#
# # 默认选择5
# if SELECT_NUM:
# 对应相关正则表达式
str_match = STR_MATCH_DICT[SELECT_NUM]
query_rule = QUERY_RULE_DICT[SELECT_NUM]
run(str_match, query_rule)
# 写入内容
write()
print('任务结束')
if __name__ == '__main__':
mean()
###
本工具使用的是海词.相对应的元素获取路径以及内容正则表达式也针对于该网站.
如需更改, 请重写相关内容.
Github下载链接:

浙公网安备 33010602011771号