Steeler は 東京大学 喜連川研究室 で運用している Web クローラ (ロボット), すなわち自動的に Web 上のページを渡り歩くソフトウェアです. Web サイトのアクセスログに,
Mozilla/5.0 (compatible; Steeler/3.5; http://www.tkl.iis.u-tokyo.ac.jp/~crawler/)のような文字列が含まれるか, アクセス元の IP アドレスが,
当研究室では Web 上に公開された文書を可能な範囲で収集し, 様々な社会現象の分析に活用することを目的としています. もし, Steeler のアクセスがサイト運営に支障を来すようでしたら, 下記の方法で ロボット除け の設定をして頂くか, 当方までご連絡 下さい. ご協力よろしくお願いします.
注: あなたが Web サーバの設定や HTML ファイル (テンプレート) をカスタマイズできない場合 (例えば, ブログサービス等を利用されている場合), 以下の説明はほとんど役に立ちません. このような場合, 当方へのご連絡 と合わせ, サービス事業者にご相談頂くこともご検討下さい. 利用者の方に提供されるアクセスログの集計方法等, 技術的な詳細は事業者にしか分からないためです.
サイト管理者やページ作者がクロールを防ぐ (制御する) 手段として ロボット除け規約 が定着しています. その設定方法には以下の2通りの方法があります.
あなたがサイト管理者で, 必要な権限を持っているなら, クローラへの指示を記述した /robots.txt というファイルをサイトのトップに 置いて下さい (http://www.your-site.com/robots.txt など). 例えば, 以下の記述は Steeler があなたのサイトからダウンロードするのを 全面的に 禁止します.
User-agent: Steeler Disallow: /
Disallow にはパス名の先頭部分 (プレフィックス) の他, ワイルドカード "*" や パス末尾を表す "$" を使うことができます. 例えば, 以下の記述は /images ディレクトリ以下のコンテンツとともに, 拡張子 .gif を持つコンテンツをアクセス禁止にします.
User-agent: Steeler Disallow: /images/ Disallow: *.gif$
アクセスの頻度が問題になる場合, Crawl-delay を指定して下さい. 例えば, 以下の記述はサイトへのアクセスの間隔を 少なくとも 30 秒空けるよう指示します.
User-agent: Steeler Crawl-delay: 30.0
あなたが HTML (テンプレート) のソースを編集できるなら, robots メタタグ を利用することもできます. HTML 文書のヘッダに
<META NAME="robots" CONTENT="noindex,nofollow">という行を記述すると, Steeler はその文書からのリンクを たどらなくなります.
注: Steeler が参照している ロボット除け規約 は, 2008年頃から大手サーチエンジンが採用しているものであり, 1990年代に提案された オリジナルの規約 に拡張が加えられたものです.
クローリングはシードと呼ばれる少数の著名なサイトの URL から出発しますが, それ以外の URL はクローリング中に取得したページのリンクから見付けます. Steeler は HTTP ヘッダの Referer にリンク元ページの URL を設定してアクセスしますので, Referer の内容をアクセスログに残すように Web サーバが設定されていれば, どのページをたどってアクセスして来たかを確認頂けます.
もし, リンク先の URL が既に削除されていたり, まだ公開したつもりのないページであったとしても, Steeler は (ロボット除けされていない限り) その URL をアクセスしてしまいます. その結果, アクセスログ上は攻撃のように見えるかも知れませんが, これを防ぐことはできません. リンク元ページへの対処と, ロボット除けの設定をお願いします.
Steeler は同じサイトに対しては一定のタイミングを空けながら 1 ページずつアクセスします. アクセスの間隔は, 大規模なサイトに対しては数秒になることもありますが, 通常は数十秒になるように制御しています. アクセスの間隔が問題になる場合は, /robots.txt で 上記 Crawl-delay を指定して下さい.
注: 次項のように Web サーバが別名を持っている場合は, 名前毎に別のサイトとみなし, より頻繁にアクセスしてしまうことがあります.
また, 一度アクセスしたページは, 一定期間後に再度アクセスして 更新の有無をチェックしています. この結果に基づき, 頻繁に更新されるページはより頻繁にアクセスし, あまり更新されないページは再アクセスの間隔を延ばすようにしています. ただし, バナー広告やセッション ID など, 常に変化する要素を含むページは, 主内容に更新がなくても頻繁にアクセスしてしまうことがあります.
偶発的あるいは意図的に, Web サーバが複数のホスト名でアクセスできるように なっていることがあります. その結果, 例えば http://www.foo.com/ と http://bar.foo.com/ のように, 同一のコンテンツを提供する複数の Web サイトが存在するように見えます. このような場合, いずれか 1つの正式名称でアクセスすることが望ましいのですが, 実際には非常に困難です. これらのサイトが, Web サーバの仮想ホスト機能を使って立ち上げた 別サイトである可能性もあるためです.
当方では, クローリング結果に基づいて同様のコンテンツを提供している サーバの組合せを検出し, なるべく冗長なアクセスを行わないように していますが, その精度には限界があります. 同一サーバを複数の名前で同時にアクセスしてしまうケースがあることを ご了承願います.
ご質問やご要望は crawler (at) tkl.iis.u-tokyo.ac.jp ("(at)" は @ を表します) まで email でお寄せ下さい. その際は当方で確実に対処できるよう, あなたのサイトのホスト名 (別名も含め) や IP アドレスを 明記して下さるようお願いします.