端末(Terminal)からWeblioで検索できるPythonスクリプト書いた
端末(Terminal)からWeblioで検索できるPythonスクリプト書いてみました。
非常に簡易的かつ、エラー処理とかも行っていませんが。
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import urllib.request import urllib.parse from html.parser import HTMLParser WEBLIO_URL = "http://ejje.weblio.jp/content/" class MyHTMLParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self._is_midashigo = False self._is_translated_word = False def handle_starttag(self, tag, attrs): if tag == "h2": attrs_dict = {t[0]:t[1] for t in attrs} if attrs_dict.get("class", None) == "midashigo": self._is_midashigo = True if tag == "a": attrs_dict = {t[0]:t[1] for t in attrs} if attrs_dict.get("class", None) == "crosslink" and self._is_midashigo: self._is_translated_word= True def handle_data(self, data): if self._is_translated_word: print(data) self._is_midashigo = False self._is_translated_word = False def parse_weblio(raw_ret): parser = MyHTMLParser() parser.feed(raw_ret) def main(): word = urllib.parse.quote_plus(sys.argv[1]) filename, headers = urllib.request.urlretrieve(WEBLIO_URL + word) with open(filename) as f: parse_weblio(f.read()) if __name__ == "__main__": main()
実行方法は以下のようにします。
$ python3 weblio.py "翻訳したい言葉"