Pregunta

Aprendí por qué Request.Browser.Crawler siempre es falso en C # ( http://www.digcode.com/default.aspx?page=ed51cde3-d979-4daf-afae-fa6192562ea9&article=bc3a7a4f-f53ecf- -c9337f6c05a0 ).

¿Alguien usa algún método para actualizar dinámicamente la lista del rastreador, por lo que Request.Browser.Crawler será realmente útil?

¿Fue útil?

Solución

Me han encantado los resultados proporcionados por Ocean's Browsercaps . Admite rastreadores que los archivos de configuración de Microsoft no se han molestado en detectar. Incluso analizará qué versión del rastreador está en su sitio, no es que realmente necesite ese nivel de detalle.

Otros consejos

Puede verificar (regex) contra Request.UserAgent .

Peter Bromberg escribió un buen artículo sobre cómo escribir un Registrador de solicitudes ASP.NET y Crawler Killer en ASP.NET.

Aquí está el método que usa en su clase Logger :

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top