検索ロボットの足跡を見る
久しぶりにPHPネタ。
WEBサイトを管理してると、「自分のサイトに検索サイトは気付いてる?」 なんて心配になることはありませんか?私はあります。まぁ、このブログはどーでもイイんですが、お客サマのサイトなんかだと納品後しばらくすると気になったりしますよね。
最近の検索は「ロボット検索」が主流ですね。これは「ボット(bot)」と呼ばれる「無差別情報収集プログラム」がネットを自動的に徘徊して集めた無数のサイトの情報を自社のデータベースに溜め込み、自分の検索サイトからパッと検索できるようにする方法です。
「自社」とはGoogle/Yahoo!/MSNなどの検索サイト運営側のこと。つまり大抵の検索サイトでは、それぞれにボットを飼っているということですね。
それでは、これらのボットが、自分の管理するサイト(ホームページ)にも巡回しに来てるのでしょうか。ちょっと捕獲してみましょう。
<!--p<-->//FileName : botcatch.php
function logbot(myurl){
$host = gethostbyaddr(getenv('REMOTE_ADDR'));
if(preg_match("/\.(googlebot|inktomisearch|msn)\.com$/i",$host)) {
$logfile= '/★ログフォルダ/botlog_'.gmdate("Ymd", time()+9*60*60).'.log';
$now = gmdate("Y/m/d H:i:s", time()+9*60*60);
$ua = getenv("HTTP_USER_AGENT");
$rec= $now."\t".$myurl."\t".$host."\t".$ua."\n";
$fp = @fopen($logfile, "a");
@flock($fp,2);
@fwrite($fp,$rec);
@flock($fp,3);
@fclose($fp);
}
}
?>
とか作っておいて、サイトやBlogのindex.phpとかに、
require_once("botcatch.php");
if(preg_match("/(Google|Slurp|msn)/i",getenv("HTTP_USER_AGENT"))) {
$myurl = $_SERVER['REQUEST_URI'];
logbot($myurl);
}
なんて適当に入れておけば、「★ログフォルダ(任意のPath)」にGoogle/Yahoo!/MSNのボットの足跡が残ります。
巡回されたURIも一緒に記録するので、Blogとかの場合だと記事番号とかの引数も残るので、どのページに来たのかも分かります(UserAgentとHostの2段階判別なので、偽ボットは無視します)
単なる粗雑なアクセスログじゃないか!という野暮な突っ込みはご遠慮申し上げます(^^;
久しぶりにログを摂ってみて分かったのですが、最近は、Yahoo!Japan独自で携帯検索用のボットを大量に派遣してるみたいですね。UAに、「 Y!J 」 を追加して、Hostに 「\.yahoo\.co\.jp」 を追加すればそれも拾えます。
・・・と、SOHOプログラマらしい記事を書いてみるテスト(・ω・)
記載日: 2007/02/08 (旧暦: 2006年12月21日) [友引]
カテゴリ: [WEBプログラム] / コメント&トラックバック: なし♪
Trackback-URI

コメント記入欄