2009-07-20 16 views
5

私のサイトの検索エンジンやクローラを検出する方法はありますか? 私はのphpBBに見ました。私たちは検索エンジンを見て許可しています。また、Google Botのようなボットの最後の訪問を見ることができます。自分のサイトで検索エンジンのサイトを検出する方法は? like phpBB

PHPのスクリプトはありますか? Googleアナリティクスまたは同種のアプリケーションではありません。 私は自分のブログサイトのためにそれを実装する必要があります、私は見つける方法がいくつかあると思いますか?あなたのデータを保持できるようにするGoogleアナリティクスへ

答えて

10

IPアドレスか、ボットまたはウェブブラウザから送信された 'User-Agent'文字列のいずれかで行くことができます。

Googlebot(または他のよく行動するロボット)があなたのウェブサイトにアクセスすると、彼らは自分が何であるかを示す$ _SERVER ['HTTP_USER_AGENT']変数を送信します。いくつかの例は次のとおり

のGooglebot/2.1(+ http://www.google.com/bot.html

NutchCVS/0.8-DEV(Nutchの、http://lucene.apache.org/nutch/bot.html

Baiduspider +(+ http://www.baidu.com/search/spider_jp.html

のMozilla/5.0(X11; U; Linuxのi686の; EN-US)のAppleWebKit/531.4(KHTML、ヤモリのような)あなたはこれらのウェブサイトでより多くの例を見つけることができます

link text link text

PHPを使用してユーザーエージェント文字列を調べ、ユーザーが検索エンジンであるかどうかを判断できます。私は、多くの場合、このようなものを使用します。

$searchengines = array(
    'Googlebot', 
    'Slurp', 
    'search.msn.com', 
    'nutch', 
    'simpy', 
    'bot', 
    'ASPSeek', 
    'crawler', 
    'msnbot', 
    'Libwww-perl', 
    'FAST', 
    'Baidu', 
    ); 
$is_se = false; 
foreach ($searchengines as $searchengine){ 
    if (!empty($_SERVER['HTTP_USER_AGENT']) and 
      false !== strpos(strtolower($_SERVER['HTTP_USER_AGENT']), strtolower($searchengine))) 
    { 
      $is_se = true; 
      break; 
    } 
} 
if ($is_se) { print('Its a search engine!'); } 

は全く検出方法(Googleアナリティクスや他の統計パッケージまたはそれ以外)が100%正確であることを行っていないことに注意してください。一部のWebブラウザではカスタムのユーザーエージェント文字列を設定できますが、不正なWebクローラーはユーザーエージェント文字列をまったく送信しないことがあります。この方法はおそらく、クローラ/訪問者の95%以上に有効です。

+0

私はこれが見ていたと思う.... – coderex

0

代替:

Piwikのは、PHPで実装され、GAと同様に動作されます。他の2つはWebサーバーログアナライザーです。

-2

Googleアナリティクスでは、サイトのクロール状況が表示されます。

5
  1. ユーザーエージェントストリングを使用して検出しようとすることができます。それらのリストはここで見つけることができます:http://www.botsvsbrowsers.com/

    検索エンジンはクローラロボット言葉を使用する傾向があります。

  2. 検索エンジンはほとんどrobots.txtにアクセスする唯一のインターネットユーザーです。

  3. GoogleBotのようなボットであることが知られているIPがいくつかあります。

関連する問題