Asp.net Request.Browser.Crawler - Lista dinámica de rastreadores?
-
08-07-2019 - |
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?
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;
}