web-dev-qa-db-ja.com

asp.net Webサイト内で検索エンジンボットを確実に検出する方法

Asp.net Webサイトでボットが生成したアクティビティ(クリック/ページ訪問)などを検出する最良の方法は何ですか?外部Webサイトに誘導されたリードを追跡するWebサイトがあり、リードを生成するユーザーのIPを追跡していますが、Googleや他の検索ボットによって生成されたリードが多数見られます。このアクティビティをフィルタリングする最良の方法は何ですか。ユーザーエージェント文字列をテストし、既知のIPアドレスに基づいてフィルタリングすることを聞いたことがありますが、どちらもさまざまなソースからデータダンプとして利用できますが、どちらが最適かはわかりません。

ありがとうございました。

2
user1081

@Kinopikoが言ったように、ボット、特にGoogleのようなトップのもの、またはbingは明確なUserAgentを残します。

私はあなたのコードがどのように見えるかわからないので、何をすべきかを伝えることはできませんが、Asp.NetでUserAgentを見つけるには、WebForm、CodeBehind、またはMVC ControllerでRequest.UserAgentを見てください。

2
Sruly

申し訳ありませんが、asp.netのWebサイトについてはわかりませんが、評判の良い検索エンジンは、ボットであることを通知するユーザーエージェント文字列を送信します。もう1つのプレゼントは、/ robots.txtを探すことです。

私のチェッカーは次のようになります(Perl):

sub is_bot
{
    my ($user_agent) = @_;
    if ($user_agent =~
    /msnbot
        |www\.cuil\.com
    |Yahoo!\s+Slurp
    |Googlebot
    |Speedy\sSpider
    |MLBot
    |princeton crawler
    |accelobot
    |crawler\@dotnetdotcom
    |help\.naver\.com
    |GingerCrawler
    |Sosospider
    |www.exabot.com
    |Baiduspider
    |Ask\sJeeves
    |Java\/
    |telehouse\.ru
    |Tagoobot
    |Baypup
    |SimilarPages
    |Spinn3r
    |VoilaBot
    |Yandex
    |Xenu\sLink\sSleuth
    |www\.searchme\.com
    |MJ12bot
    |kilomonkey\.com
    |Mediapartners-Google
    |Sogou\sweb\sspider
    |YoudaoBot
    |seexie\.com
    |Yahoo.*Slurp
    |YahooCacheSystem
    |crawler\@nutch\.biz
    |psbot
    |ia_archiver-web\.archive\.org
    |sbider
    |xrss\.eu
    |scoutjet
        |www\.puritysearch\.net
        |Bing
        |BaiduImagespider
        |baidu\.jp
        |facebookexternalhit
        |ssllabs\.com
        |Python-urllib
        |drupal\.org
        |HTTrack
        |Willow\s+Internet\s+Crawler\s+by\s+Twotrees
    /x) {
    return 1;
    }
    return;
}

Awstatsのソースコードを見ると、上記よりも優れたものが見つかります。

0
delete