it-swarm.cn

如何在asp.net网站内可靠地检测搜索引擎机器人?

在asp.net网站上检测机器人生成的活动(点击/页面访问)等的最佳方法是什么?我们有一个网站,我们跟踪生成到外部网站的潜在客户,我们跟踪生成潜在客户的用户的IP,但我们看到了很多由Google和其他搜索机器人生成的潜在客户。过滤此活动的最佳方法是什么。我听说过根据已知的IP地址测试用户代理字符串和过滤,这两者都可以作为各种来源的数据转储,我不确定哪个是最好用的。

谢谢。

2
user1081

就像@Kinopiko说的那样,Bots,像google这样的顶级产品,或者bing留下了明确的UserAgent。

我不知道你的代码是什么样的,所以我不能告诉你该怎么做但是要在Asp.Net中找到UserAgent,你可以在任何WebForm,CodeBehind或MVC Controller中查看Request.UserAgent。

2
Sruly

抱歉,但我不知道asp.net网站,但任何信誉良好的搜索引擎都会向您发送一个用户代理字符串,告诉您它是一个机器人,并且应该在您的日志文件中提供。另一个赠品是他们寻找/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