如何在Asp.net MVC中检测爬虫

时间:2011-09-27 22:43:57

标签: c# asp.net-mvc asp.net-mvc-3

我正在使用一个动作过滤器来检查我的网站上正在使用的浏览器版本,如果它是较旧的浏览器,我会在顶部设置一个div,要求他们升级。我不希望网络抓取工具获取div消息,所以我实现了HttpBrowserCapabilitiesBase.Crawler,看起来它适用于Google,但Bing和其他人似乎没有注册为抓取工具。奇怪的是,微软的产品没有注意到Bing是一个爬虫!

是否有某种方法可以将用户代理添加到抓取工具属性中?

谢谢!

编辑:我正在使用asp.net mvc 3,看起来我需要用户.Browser文件(?)。有人知道Bing和其他爬虫的全套.Browser文件吗?

2 个答案:

答案 0 :(得分:5)

您可能需要更新browscap.ini文件,因为IIS附带的文件可能已经过时了。您可以通过以下网址之一获取新网址:

browscap.ini通常住在:c:\ windows \ system32 \ inetsrv \ browscap.ini

答案 1 :(得分:2)

我们不使用MVC,但我们这样做:

Regex.IsMatch(Request.UserAgent, @"bot|crawler|baiduspider|80legs|ia_archiver|voyager|curl|wget|yahoo! slurp|mediapartners-google", RegexOptions.IgnoreCase);

我的答案中有更多选项:

Detecting honest web crawlers