Phase.1 どんなページを巡回するのか?

 Chapter.1 巡回可能なページかどうかの判断

 まず始めに、どのようなページが巡回に適しているかどうかを考えます。巡回エージェントを作りやすいページは、このようなものでしょうか……。

  1. ログとして管理できるような、テキストや画像と言ったコンテンツを持つ。
  2. ウェブページからログの要素を抽出する際、何らかのパターンで要素の位置を特定できる。
  3. 他のログと識別できる何らかの条件を持つ。
  4. URLが変化しない。あるいは、URLが変化する場合でも、ある特定のページから読み込むべきURLを識別できる。
  5. 上の4つの条件が恒常性を持って満たされる。
 1番目は、まず収集すべき情報が何であるか決めなくてはならないということです。対象が画像データであったり圧縮ファイルであったりテキストであったりと様々だと、エージェントを開発できないわけではありませんが多くの手間がかかります。

 2番目は、対象ページからログに保存するデータをプログラムから取り出すことができるかどうかを現しています。例えばフリーフォーマットの手書きのページから、どの位置にあるかわからない日付やタイトルを抜き出すような処理は困難です(あと10年くらいしたら状況は変わっているかも知れませんが……)。プログラムで処理する以上、データは規則性を持って配置されている必要があります。もちろん多少のばらつきは判定条件を増やすことで対処できます。それが果たして、プログラムとして表現可能な程度に収まっているどうかということが問題なのです。(『正規検索』を使いこなせれば、かなり柔軟な判定が可能です。憶えておいて損はありません!)

 3番目は、複数のログの差異を簡単に識別できる条件を持っているかどうかを現します。例えばテキストを収集する場合、あるログと別のログとを識別するための条件が必要です。あらかじめ対象のページの中にログ番号等のユニーク性を保証するデータがあれば簡単ですが、そうでない場合はエージェントの開発者が何を持ってそのログを特定できるのか考えなければなりません。『新規に追加されたログを収集する』場合、対象ページの中からどの部分が『新規』であるかを判断する必要があり、そのためには『ログを特定するための何らかの情報』を読み取り、取得済みのデータと比較する必要があるのです。

 4番目は、収集すべきページが特定できるかどうか、ということです。収集対象のデータが置かれるURLが不定であっても、特定のページからそのURLを読み取ることができれば問題ありません。その場合、巡回エージェントは『データの保存されているURLの読み取り』→『新規ログの収集』という2段階の構造になります。

 5番目は、上記条件がころころ変わったりしないか、ということを現します。例えば、頻繁にサイト移転を繰り返すページや、短期間にデザインが変更されるページだと、そのたびにエージェントを修正しなければならず、エージェントを利用する意義が薄れてしまいます。

 ……と格好つけて、わざと難しい言葉で説明していますが、あまり深く考える必要はありません。なんとなく規則的にデータが並んでいることが識別できれば、大抵の場合エージェントの作成は可能です。また多くの日記や掲示板のページは、上記の条件を満たしていることもご理解頂けることと思います(データの入力がcgi等のプログラムを介して行われる場合、その出力結果も規則的にデータが配置されるからです)。

 さて、本資料ではサンプルとして、オルトアール(http://www.alt-r.com/)内のスタパ齋藤氏のコラム、『スタパライフ』(http://www.alt-r.com/di/toc5-0.html)を巡回するエージェントを取り上げてみたいと思います。