やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ファビコン収集ツールを作った

WebサービスのURL、タイトル、ファビコンをDBに登録して、HTMLに出力して一覧する。

名前

  • ファビコン・コレクター (Favicon Collector)
  • ファビコレ (favcol.)

出力例

f:id:ytyaru:20170603070304p:plain

成果物

GitHubFaviconGetter.201706021605

開発環境

動機

  • 利用するWebサービスが増えてきた。忘れぬよう記録しておきたい。
  • ファビコンで一覧できたらわかりやすそう

実行してみる

$ bash run.sh
  1. url.txtにあるURLを対象にデータを取得する
  2. 規定のブラウザでindex.htmlを表示する

f:id:ytyaru:20170603070304p:plain

こまかい手順

1. url.txtをつくる

  1. ファビコンを取得したいURLを1行ずつ書く

ドメインまでのURLがあればOK。

2. FileLoader.pyを実行する

$ python3 FileLoader.py

URLの数が多いと時間がかかる。

3. IndexHtmlWriter.pyを実行する

$ python3 IndexHtmlWriter.py

index.html, favicon.css, が出力される。

4. index.htmlをブラウザで開いて閲覧する

example.png

  • クリックするとURLに飛ぶ
  • マウスオーバーで拡大表示される

さらに細かい使い方

アクセス方法、データ取り扱い方法を3パターンから選べる。

メソッド 概要
InsertGet DBに存在しなければネットから取得する。(デフォルト)
Upsert ネットから取得し存在しなければDBへ挿入。存在すればファビコン等を更新する。
InsertRevision 古いファビコンもDBに保存する。

FileLoader.pyファイルの以下部分。

                self.__db_access.InsertGet(line)
#                self.__db_access.Upsert(line)
#                self.__db_access.InsertRevision(line)

上記コードのうちどれか一つを選ぶ。他は#コメントアウトする。

課題

  • インタフェース
    • HTMLからURL登録したい
    • HTMLからログを確認したい
    • HTMLから指定サービスを削除したい
  • キーボードで操作したい
    • カーソルキーでサービスを選択したい
    • Enterキーでリンクを新しいタブで開きたい
  • リンク切れチェック
    • 定期的に自動でチェックしたい
      • サービス削除したい

所感

課題以外にもまだまだ機能追加したいが、とりあえずここまで。