2011-09-27 5 views
4

J'utilise un filtre d'action qui vérifie quelle version du navigateur est utilisée sur mon site, si c'est un navigateur plus ancien, j'ai placé un div en haut pour leur demander de mettre à niveau. Je ne veux pas que les robots d'exploration obtiennent le message div, j'ai donc implémenté HttpBrowserCapabilitiesBase.Crawler et il semblerait que cela fonctionne pour Google, mais Bing et les autres ne semblent pas s'inscrire comme robots d'exploration. Étrange pour un produit Microsoft de ne pas remarquer Bing comme un robot d'exploration!Comment détecter les crawlers dans Asp.net MVC

Existe-t-il un moyen d'ajouter des agents d'utilisateur à la propriété du moteur de balayage ou quelque chose?

Merci!

Édité: J'utilise asp.net mvc 3, il semble que j'ai besoin de fichiers .Browser utilisateur (?). Quelqu'un sait-il un ensemble complet de fichiers .Browser là pour Bing et le reste des robots d'exploration?

+1

liés: http://stackoverflow.com/questions/222564/httpbrowsercapabilities-crawler-property-net –

Répondre

5

Vous aurez probablement besoin de mettre à jour votre fichier browscap.ini car celui fourni avec IIS est probablement ancien. Vous pouvez obtenir un nouveau à l'une des adresses suivantes:

browscap.ini vit habituellement à: c: \ windows \ system32 \ inetsrv \ browscap.ini

+1

Cela ne semble pas fonctionner pour moi, c'est probablement parce que j'utilise asp.net mvc? D'autres recherches m'ont dit d'utiliser des fichiers .Browser. – gt124

+0

Soit devrait fonctionner AFAIK. Nous utilisons ASP.Net MVC et cela a fonctionné pour nous. Êtes-vous sûr que le robot d'exploration est dans le fichier browscap? – Deleted

+0

J'ai ajouté le fichier browscap.ini du lien garykeith que vous avez fourni, puis je suis allé dans le répertoire framework/v4/config/browsers, j'ai édité gateway.browser et j'ai ajouté bingbot à côté de msnbot pour la passerelle crawler, compilé avec framework/v4/aspnet_regbrowsers.exe -i et ... Il a commencé à fonctionner. – gt124

2

nous n'utilisons MVC mais nous ceci:

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

Plus d'options dans ma réponse ici:

Detecting honest web crawlers

Questions connexes