英辞郎 on the Webから訳語を取得するスクリプト

昔はローカルで英辞郎を使っていたが、最近はもっぱらインターネット接続中に翻訳したくなることが多いのでコマンドラインからWebにアクセスして訳語を出してくるスクリプト作った。Google TranslateだとAPIキーを用意しなければいけないため、英辞郎 on the Webにアクセスする方式にした。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# ALCのサイトを使って翻訳するアプリ
# [使い方]
# ./eijiro.py 翻訳したい単語(日 or 英)
import requests
import html2text
import sys


########################################
def process_str(in_str):
    lines = in_str.split("\n")
    flg_print = None
    for line in lines:
        if "btn_next_on.png" in line:
            flg_print = True
            continue

        if "tango_off.png" in line:
            flg_print = None
            break
            
        if flg_print:
            print(line)
########################################

# https://pypi.org/project/html2text/
h = html2text.HTML2Text()
h.ignore_links = True

url = "https://eow.alc.co.jp/search?"
payload = {'q': sys.argv[1] }
r = requests.get(url, params=payload)
out_str = h.handle(r.text)
process_str(out_str)

動作例

$ eijiro.py 堕落

  * ## 堕落

    * backslide(悪い方への)
    * corruption
    * debauch
    * decadence
    * declination
    * degeneracy
    * depravation
    * depravity
    * depths(道徳的な)
    * descent(良い状態からの)
    * deterioration(道徳などの)
    * fall(道徳などの)
    * filth
    * moral retrogression
    * prostitution
    * rot
    * ruin(社会的な)
    * ulcer〈文〉

I've prepared a small script to search translation of English/Japanese words.