Quelles sont les options disponibles pour détecter les robots d'exploration du Web qui ne veulent pas être détectés ?
(Je sais que l'établissement d'une liste des techniques de détection permettra au programmeur d'araignée furtive intelligent de fabriquer une meilleure araignée, mais je ne pense pas que nous serons jamais en mesure de bloquer les araignées furtives intelligentes de toute façon, seulement celles qui font des erreurs).
Je ne parle pas des gentils crawlers tels que googlebot et Yahoo ! Slurp. Je considère qu'un bot est sympa s'il :
- s'identifie comme un robot dans la chaîne de caractères de l'agent utilisateur.
- lit le fichier robots.txt (et y obéit)
Je parle de la mauvais des robots d'exploration, qui se cachent derrière des agents utilisateurs courants, utilisent ma bande passante sans jamais rien me donner en retour.
Il y a quelques trappes qui peuvent être construites liste mise à jour (merci Chris, gs) :
- Ajout d'un répertoire uniquement listé (marqué comme disallow) dans le fichier robots.txt,
- Ajout de liens invisibles (éventuellement marqués comme rel="nofollow" ?),
- style="display : none ;" sur le lien ou le conteneur parent
- placé sous un autre élément avec un z-index plus élevé
- détecter qui ne comprend pas le CaPiTaLiSaTioN,
- détecter qui essaie de poster des réponses mais échoue toujours au Captcha.
- détecter les demandes GET vers des ressources POST seulement
- détecter l'intervalle entre les demandes
- détecter l'ordre des pages demandées
- détecter qui demande (systématiquement) des ressources https plutôt que http
- détecter qui ne demande pas de fichier image (en combinaison avec une liste d'agents utilisateurs de navigateurs connus pour leur capacité à fournir des images, cela fonctionne étonnamment bien).
Certains pièges seraient déclenchés à la fois par les "bons" et les "mauvais" bots. Vous pourriez les combiner avec une liste blanche :
- Il déclenche un piège
- Il demande
robots.txt
? - Il ne déclenche pas un autre piège parce qu'il a obéi.
robots.txt
Une autre chose importante ici est :
Tenez compte des personnes aveugles qui utilisent un lecteur d'écran : donnez-leur un moyen de vous contacter, ou résolvez un Captcha (sans image) pour continuer à naviguer.
Quelles sont les méthodes permettant de détecter automatiquement les robots d'exploration du Web qui tentent de se faire passer pour des visiteurs humains normaux ?
Mise à jour
La question n'est pas : Comment puis-je attraper chaque chenille. La question est la suivante : Comment puis-je maximiser les chances de détecter un crawler.
Certains spiders sont vraiment bons, et analysent et comprennent réellement le html, xhtml, css javascript, VB script etc...
Je ne me fais pas d'illusions : Je ne pourrai pas les battre.
Vous seriez cependant surpris de la stupidité de certains crawlers. Le meilleur exemple de stupidité (à mon avis) est le suivant : mettre toutes les URL en minuscules avant de les demander.
Et puis il y a toute une série de crawlers qui ne sont tout simplement "pas assez bons" pour éviter les différentes trappes.