Sherlock

(C)1998 GNUE(鵺)
DATE: 1998/??/??



このページでは Mac OS 8.5 インターネット検索 (Sherlock) の Plug-in 作成を解説します。


まずは準備

  • [準備 1] 検索サイトとその検索結果のソース(html) を用意します。

  • [準備 2] テキスト書類でないファイルを編集できるテキスト・エディタを用意します(YooEdit など)

    ※ YooEdit ではオプション・キーを押しながら『開く』のメニューを選択するとオープンダイアログですべての書類が見えるようになります

  • [準備 3] テンプレートを用意しましたので、これをダウンロードしてください
    [Download]

    今後はこのテンプレートを前提に解説します。


とりあえず作ってみよう


(1) (2) … はテンプレート内のラベルです

  • [STEP 1] (1) で検索サイトの名前を記述します。

    [注意] 日本語の場合、文字化けする場合があります(しない場合もある)

  • [STEP 2] 検索サイトのソースから <form action=”xxx”> を探し、
    (2) に転記します。

    [注意] http://… で始まっていない場合は http://… で始まる URL の形式にします。

    例) 検索サイト “http://www.xyz/~abc/search.html” の場合

    • action=”find.cgi” → action=”http://www.xyz/~abc/find.cgi”
    • action=”/find.cgi” → action=”http://www.xyz/find.cgi”

  • [STEP 3] 検索サイトのソースから <input …>, <select …> を探し、
    (3) に転記します。このとき

    • <input type=”text” name=”keyword” size=”20″> は
      <input name=”keyword” user> とします

      この user が Sherlock で入力された検索キーワードを意味します。

    • <select …> は値を1つ選び <input name=”xxx” value=”xxx” > の形式にします
    • name, value 以外の不要なものは取り除きます

    [注意] 余分な <input …> があったり、足りないものがあるとうまく検索できません

  • [STEP 4] (4) に検索結果リストの開始と終了のキーワードを記述します。

    resultListStart = “検索結果はここから”
    resultListEnd = “検索結果はここまで”

    適当な開始キーワードと終了キーワードを検索結果のソースをじっくり睨みながら探しましょう。

  • [STEP 5] (5) に検索結果アイテムの開始と終了のキーワードを記述します。

    resultItemStart = “アイテム開始”
    resultItemEnd = “アイテム終了”

    [注意] “<LI>” などの簡単なリストの場合は resultItemEnd は省略したほうがいい場合が多いようです
    [注意] ついついやってしまいたいのが “<A” といったキーワードですが、このような中途半端なタグをキーワードにすることはできないようです(これが結構不便)

  • [STEP 6] (6) に関係性 (%) の開始と終了のキーワードを記述します。

    relevanceStart = “[“
    relevanceEnd = “%]”

    大概は色が変わっていたり、カッコで囲まれていると思うのでそれをキーワードにするといいと思います。

    パーセント表示のない検査サイトも多いので、その場合は # でコメントアウトします。

  • [STEP 7] (7) にバナーの開始と終了のキーワードを記述します。

    bannerStart = “バナーの開始”
    bannerEnd = “バナーの終了”

    バナーがない場合は # でコメントアウトします。


エンコーディング

日本語の場合、ShiftJIS, EUC-JP, ISO-2022-JP という3つのエンコーディングがインターネットで使われています。

もし、検索結果が文字化けしたり、検索キーワードがうまく送られていない場合は queryEncodingresultEncoding の値を変更してみて下さい。

  • [ShiftJIS] 2561 # 0x0A01
  • [EUC-JP] 2336 # 0x0920
  • [ISO-2022-JP] 2080 # 0x0820

です。テンプレートではあらかじめ # でコメントアウトしてあります。

※ もし日本語以外のエンコーディングを使いたい場合(中国語の検索サイトを使う?)は TextCommon.h という Mac のプログラム用のヘッダファイルを参照して下さい。


その他

  • [OPTION 1] アイコンをつけましょう

    アイコンは Finder のカスタムアイコンがそのまま表示されます。

    アイコンをつけると、検索結果がどの検索サイトのものかわかるようになりますので、是非つけるようにしましょう。

  • [OPTION 2] オンラインメンテナンス

    Sherlock はオンラインメンテナンスの機能を持っています。簡単に云うと検索サイトの Plug-in がアップデートされたときに(半)自動的に Web からダウンロードして更新してくれる機能です。

    この機能を使うためには

    update = “http://www.xxx.xxx/updates/xxx.src.hqx”
    updateCheckDays = 3

    を記述します。

    アップデータは圧縮無しの BinHex で Web にアップします。

    updateCheckDays があまり短いとトラフィックが増えるような気もするのですが、どうなんでしょう。運用がある程度安定したら間隔を長くしたほうがいいかもしれませんね。


検索サイトの管理者は…

もしあなたが検索サイトの管理者ならば、Sherlock が解析しやすい検索結果を返すようにしましょう。例えば

<! — result –>
 検索結果
<! — /result –>

<! — banner –>
 バナー
<! — /banner –>

のようにコメント・タグを使うと検索結果の解析が非常に楽になります。


応用…?

さて、インターネットの検索というと単に Web の検索だけではない。中には辞書検索のサイトも存在する。つまり、Sherlock で英和/英和の辞書検索も可能ということである。

是非、演習としてチャレンジしてみよう(^^)!


関連サイト