2つのオンライン辞書で単語定義を見つけて比較するスクリプト

2つのオンライン辞書で単語定義を見つけて比較するスクリプト

私が選んだ2〜3つのオンライン辞書(例えば、Longman、Cambridge、Oxford)で、特定の単語(「obey」など)のさまざまな定義を見つけたいと思います。その後、端末に 1 つずつリストします。これをスクリプトに置き換えることができますか?どこから始めるべきですか?

答え1

これを行う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パッケージが必要です。)

1つの明らかな欠点は、コレクタが提供する辞書とその形式の選択が制限されることです。

別のオプションは、適切なコンソール辞書を使用することです。SDCV。ただし、すべてのオンライン辞書が自動アクセスのためのAPIを提供するわけではないため、この方法では合法的に使用できる辞書の数が制限されます。

関連情報