Frage

Ich habe gelernt Warum Request.Browser.Crawler Immer unwahr ist in C # ( http://www.digcode.com/default.aspx?page=ed51cde3-d979-4daf-afae-fa6192562ea9&article=bc3a7a4f-f53e-4f88-8e9c-c9337f6c05a0 ).

Hat jemand verwendet eine Methode, um dynamisch die Liste der Crawler zu aktualisieren, so Request.Browser.Crawler wirklich nützlich sein wird?

War es hilfreich?

Lösung

Ich habe glücklich die die von Ozeans Browsercaps . Es unterstützt Crawler, die Microsoft-Konfigurationsdateien Erfassungs nicht gestört hat. Es wird sogar analysieren, welche Version des Crawlers auf Ihrer Website ist, nicht, dass ich wirklich so viele Details müssen.

Andere Tipps

Sie könnten überprüfen (regex) gegen Request.UserAgent.

Peter Bromberg hat einen schönen Artikel über das Schreiben ein ASP.NET anfordern Logger und Crawler-Mörder in ASP.NET.

Hier ist die Methode, die er in seiner Logger Klasse verwendet:

public static bool IsCrawler(HttpRequest request)
{
   // set next line to "bool isCrawler = false; to use this to deny certain bots
   bool isCrawler = request.Browser.Crawler;
   // Microsoft doesn't properly detect several crawlers
   if (!isCrawler)
   {
       // put any additional known crawlers in the Regex below
       // you can also use this list to deny certain bots instead, if desired:
       // just set bool isCrawler = false; for first line in method 
       // and only have the ones you want to deny in the following Regex list
       Regex regEx = new Regex("Slurp|slurp|ask|Ask|Teoma|teoma");
       isCrawler = regEx.Match(request.UserAgent).Success;
   }
   return isCrawler;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top