用于查找和比较 2 个在线词典中单词定义的脚本

用于查找和比较 2 个在线词典中单词定义的脚本

我想在我选择的两到三个在线词典(例如朗文词典、剑桥词典、牛津词典)中查找给定单词(例如“服从”)的不同定义。然后将它们一一列出在终端中。这个可以改成剧本吗?我从哪说起呢?

答案1

做到这一点的一种方法是利用现有的字典聚合器,例如免费词典或者一看并简单地将其输出转换为文本形式。

例如,对于 The Free Dictionary,您可以定义以下函数:

$ tfd() {
  if [[ $# -ne 1 ]]; then echo "Syntax: webdict <word>"; return; fi
  python3 -c "
import bs4,requests
sel = '[data-src=hm], [data-src=hc_dict], [data-src=rHouse]'
page = requests.get('https://www.thefreedictionary.com/$1').text
for d in bs4.BeautifulSoup(page, 'html.parser').select(sel): print(d, end='<hr>')" |
  w3m -dump -T text/html;
}

然后你可以用它来查找单词:

$ tfd fain

(请注意,需要 python3、python3-requests、python3-bs4 和 w3m 包才能正常工作。)

一个明显的缺点是您将仅限于聚合器提供的词典选择及其格式。

另一种选择是使用适当的控制台字典,例如SDCV。但是,并非所有在线词典都提供用于自动访问的 API,这将限制您可以通过此方法合法使用的词典数量。

相关内容