2011-10-08

weblio英単語帳のデータをCSV形式にして出力するブックマークレット

weblio英単語帳のデータをCSVデータにするブックマークレット

weblioという辞書サイトにて「weblio語彙力診断」というクイズ形式の実力診断テストがあり、時折やっています。また、このサイトには「英単語帳」というサービスがあり、前述のテストにて不正解だった単語をクリックひとつですべて登録することができます(要ユーザー登録)。

しかし、この語彙力診断テスト、正解するたびにどんどん難易度の高い単語が出てくるので、テストをするたびに常に不正解の単語がいくつか出てくることになり、その度に単語帳に登録していくと単語がたまる一方。むろん、不正解した単語をきっちり覚えこんで単語帳から削除すればいいのですが、英単語というのはそんなに簡単に覚えられるものではありません。できれば、この不正解単語リストを他の学習システムに持って行きたいところです。

しかし、このweblio英単語帳のサービス、新たな機能がどんどん追加されているのはいいのですが、単語帳データのエクスポート機能というのは今までサポートされていませんでした。で、先日「登録単語のエクスポート」という機能が追加されたので試してみたのですが、本当に「単語」だけが並んでいるリストで、ちょっと使い物になりません。

そういうわけで、画面に表示されている単語帳のデータをCSVデータにして、画面上部のテキストボックス内に表示するブックマークレットを作ってみました。表示されたCSVデータを全選択→コピーして、メモ帳などにペーストして、拡張子をcsvとしてセーブすれば、Excelなどのソフトで扱うことができます。

本当は、CSVデータを元にiKnow!のカスタムコースを作る仕組みを作りたいのですが、こちらはおいおい進めていきます。

余談

当初はPerlスクリプトにて、WWW::MechanizeとWeb::Scraperを使った形で実装していたのですが、Perlスクリプトという形態では使えるユーザーが限られてしまうのと、weblio英単語帳にアクセスするためには「ログイン」が必要なことを考えて、ブックマークレットという方式に移行しました。前者の問題は「PAR (Parl Archiving Toolkit)」とかを使えば何とかなりそうですが、後者の問題がちょっと面倒です。

技術的には、Mechanizeではログイン処理も普通にサポートしていますし、実際にweblio英単語帳にログインする処理も簡単に実装できたのですが、ログインにあたっては当然「パスワード入力」が必要で、そこがやっかい。得体のしれないPerlスクリプト(あるいはそれをコンパイルした実行ファイル)に、ユーザーIDとパスワードを入力したい人はいないよなー、ということで、ブックマークレットで逃げることにしました。

0 件のコメント:

コメントを投稿