Quelles sont les options disponibles pour détecter les robots d'exploration qui ne veulent pas être détectés?
(Je sais que les techniques de détection de listes permettront au programmeur intelligent de robots furtifs de créer une meilleure araignée, mais je ne pense pas que nous serons de toute façon capables de bloquer les robots intelligents furtifs, uniquement ceux qui font des erreurs.)
Je ne parle pas des bons robots d'exploration tels que googlebot et Yahoo! Slurp. Je considère un bot sympa s'il:
- s'identifie comme bot dans la chaîne de l'agent utilisateur
- lit le fichier robots.txt (et y obéit)
Je parle des mauvais robots d'exploration, qui se cachent derrière des agents utilisateurs courants, utilisent ma bande passante et ne me donnent jamais rien en retour.
Il y a quelques trappes qui peuvent être construites avec une liste mise à jour (merci Chris, gs) :
- Ajout d'un répertoire répertorié uniquement (marqué comme interdit) dans le fichier robots.txt,
- Ajout de liens invisibles (éventuellement marqués comme rel = "nofollow"?),
- style = "affichage: aucun;" 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 la capitalisation,
- détecter qui essaie de publier des réponses mais échoue toujours au Captcha.
- détecter les requêtes GET vers des ressources POST uniquement
- détecter l'intervalle entre les demandes
- détecter l'ordre des pages demandées
- détecter qui demande (systématiquement) des ressources https via http
- détecter qui ne demande pas de fichier image (ceci en combinaison avec une liste d'agents utilisateurs de navigateurs connus capables d'images fonctionne étonnamment bien)
Certains pièges seraient déclenchés à la fois par des «bons» et des «mauvais» robots. vous pouvez les combiner avec une liste blanche:
- Ça 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 la suivante:
veuillez considérer les personnes aveugles utilisant un lecteur d'écran: donnez aux gens un moyen de vous contacter, ou résolvez un Captcha (sans image) pour continuer à naviguer.
Quelles méthodes existe-t-il pour détecter automatiquement les robots d'exploration essayant de se masquer en tant que visiteurs humains normaux?
Mise à jour
La question n'est pas: comment attraper chaque robot. La question est: comment puis-je maximiser les chances de détecter un robot d'exploration.
Certaines araignées sont vraiment bonnes, et analysent et comprennent en fait html, xhtml, css javascript, script VB etc ...
Je ne me fais aucune illusion: je ne pourrai pas les battre.
Vous seriez cependant surpris de la stupidité de certains robots. Avec le meilleur exemple de stupidité (à mon avis) étant: convertir toutes les URL en minuscules avant de les demander.
Et puis il y a tout un tas de robots qui ne sont tout simplement «pas assez bons» pour éviter les différentes trappes.