Je vais développer des fonctionnalités qui permettront d'explorer divers sites Web publics et de traiter / regrouper les données les concernant. Rien de plus sinistre que de chercher des adresses e-mail - en fait, c'est quelque chose qui pourrait en réalité générer du trafic supplémentaire sur leurs sites. Mais je m'égare.
Hormis le respect robots.txt
, y a-t-il des règles ou des directives, écrites ou non écrites, que je devrais suivre pour (a) éviter de paraître malveillants et potentiellement interdites, et (b) ne pas causer de problèmes aux propriétaires du site / aux webmasters?
Quelques exemples auxquels je peux penser, qui peuvent ou non avoir de l'importance:
- Nombre de demandes parallèles
- Temps entre les demandes
- Temps entre les analyses entières
- Eviter les liens potentiellement destructifs (ne pas vouloir être l' Araignée du Destin - mais qui sait si c'est même pratique)
C'est vraiment juste cracher-boule, cependant; Existe-t-il une sagesse qui a fait ses preuves et qui soit largement applicable à quiconque a l'intention d'écrire ou d'utiliser une araignée?
la source
Réponses:
En plus d'obéir à robots.txt, obéissez
nofollow
etnoindex
dans les<meta>
éléments et les liens:Nombreux sont ceux qui pensent que robots.txt n'est pas le bon moyen de bloquer l'indexation et, en raison de ce point de vue, ont demandé à de nombreux propriétaires de sites de s'appuyer sur la
<meta name="robots" content="noindex">
balise pour indiquer aux robots d'exploration de ne pas indexer une page.Si vous essayez de créer un graphique des connexions entre les sites Web (tout ce qui ressemble au PageRank),
(et
<meta name="robots" content="nofollow">
) est censé indiquer que le site source ne fait pas suffisamment confiance au site de destination pour lui donner son aval. Ainsi, bien que vous puissiez indexer le site de destination, vous ne devez pas stocker la relation entre les deux sites.Le référencement est plus un art qu'une science, et il est pratiqué par un grand nombre de personnes qui savent ce qu'elles font et qui lisent les résumés analytiques des personnes qui savent ce qu'elles font. Vous allez rencontrer des problèmes qui vous empêcheront de faire des choses que d'autres sites jugeraient parfaitement acceptables en raison d'une règle ou d'une personne entendue ou lue dans un article de blog sur SEOmoz qui peut ou peut ne pas être interprétée correctement.
En raison de cet élément humain, sauf si vous êtes Google, Microsoft ou Yahoo !, vous êtes présumé malveillant, sauf preuve du contraire. Vous devez faire particulièrement attention à ne pas menacer un propriétaire de site Web et à agir de la manière dont vous voudriez qu'un robot d'exploration potentiellement malveillant (mais heureusement bénin) agisse:
/admin/
, par exemple.Même dans ce cas, la bataille sera rude, à moins que vous utilisiez des techniques de type chapeau noir, telles que la falsification d’UA ou le masquage intentionnel de modèles rampants: de nombreux propriétaires de site, pour les mêmes raisons que précédemment, bloqueront à vue un robot inconnu. la chance que quelqu'un n'essaye pas de "pirater leur site". Préparez-vous à beaucoup d'échec.
Une des choses que vous pouvez faire pour lutter contre l'image négative qu'un robot d'exploration inconnu va avoir est de préciser dans votre chaîne d'agent utilisateur qui vous êtes:
Où
http://example.com/aarobot.html
explique ce que vous essayez d'accomplir et pourquoi vous n'êtes pas une menace. Cette page devrait contenir quelques éléments:Cette dernière est la clé: un bon opt-out est comme une garantie de remboursement et génère un achalandage déraisonnable. Il doit être humain: une étape simple (adresse électronique ou, idéalement, un formulaire) et complète (il ne devrait y avoir aucun "piège": la désactivation signifie que vous arrêtez de crawler sans exception).
la source
(+http://example.com/aarobot.html)
. Je ne sais pas à quoi+
sert le panneau, mais je l'ai souvent vu. Web-Sniffer le fait, et beaucoup d'autres.rel="noindex"
comme s'il s'agissait d'un<a>
attribut, mais la page vers laquelle vous pointez le lien le décrit comme faisant partie de l' attribut de la<meta>
balisecontent
. Est-ce les deux, ou était-ce une faute de frappe dans la réponse?Bien que cela ne réponde pas à toutes vos questions, je pense que cela vous aidera, ainsi que les sites que vous explorez.
Semblable à la technique utilisée pour forcer les sites Web en force brutale sans attirer l'attention, si vous avez un assez grand nombre de sites à explorer, ne parcourez pas la page suivante du site tant que vous n'avez pas parcouru la page suivante de tous les autres sites. . Eh bien, les serveurs modernes autoriseront la réutilisation de la connexion HTTP . Vous voudrez peut-être en faire plusieurs pour minimiser les frais généraux, mais l'idée est toujours valable. Ne parcourez pas un site jusqu'à épuisement jusqu'à ce que vous passiez au suivant . Partager l'amour.
Pour vous, à la fin de la journée, vous pouvez toujours explorer autant de pages, mais l’utilisation moyenne de la bande passante sur un seul site sera bien moindre.
Si vous voulez éviter d'être l'araignée du destin, il n'y a pas de méthode infaillible. Si quelqu'un veut coller des haricots leur nez , ils et probablement faire ainsi dans les manières que vous pourriez ne jamais prédire. Cela dit, si cela ne vous dérange pas de manquer une page valide occasionnelle, ayez une liste noire de mots pour un lien qui vous empêchera de la suivre. Par exemple:
Pas infaillible, mais parfois, vous ne pouvez pas empêcher les gens d'apprendre à la dure;)
la source
robots.txt
est déjà mentionné dans la question et peut être considéré comme supposé.Mon seul conseil est d' écouter ce que le site Web que vous explorez vous dit et de changer dynamiquement votre analyse en réaction à cela.
Le site est-il lent? Rampez plus lentement pour ne pas le DDOS. Est-ce rapide? Rampez un peu plus, alors!
Le site est-il erroné? Rampez moins afin de ne pas stresser un site déjà sous la contrainte. Utilisez des temps de tentative augmentant de manière exponentielle, afin que vous tentiez de nouveau moins le site avec erreur est long. Mais rappelez-vous de réessayer ultérieurement, pour que vous puissiez voir tout ce qui vous manque en raison d’une erreur d’une semaine sur un chemin d’URL spécifique.
Obtenir beaucoup de 404? (N'oubliez pas que nos 404 pages fantastiques prennent également le temps du serveur!) Évitez d'explorer d'autres URL avec ce chemin pour l'instant, car il manque peut-être tout ce qui s'y trouve; si
file001.html
-file005.html
n'est pas là, je parie que l'argent en beignetsfile999.html
ne l'est pas non plus! Ou peut-être réduisez-vous le pourcentage de temps pendant lequel vous récupérez quoi que ce soit dans cette voie.Je pense que c’est là que beaucoup de robots naïfs se trompent profondément en mettant en place une stratégie robotique qui fonctionne de la même manière, quels que soient les signaux qu’ils reçoivent du site cible.
Un robot d'exploration intelligente réagit au (x) site (s) cible (s) qu'il / elle touche.
la source
D'autres ont mentionné une partie du mantra, mais laissez-moi en ajouter.
Faites attention au type et à la taille du fichier. Ne tirez pas ces binaires énormes.
Optimisez pour certaines pages "liste de répertoires" de serveur Web typiques. Ils permettent notamment de trier par taille, date, nom, autorisations, etc. Ne traitez pas chaque méthode de tri comme une racine distincte pour l'analyse.
Demandez gzip (compression à la volée) lorsque disponible.
Limitez la profondeur ou détectez la récursivité (ou les deux).
Limiter la taille de la page. Certaines pages implémentent des cibles pour contrecarrer les robots de messagerie. C'est une page qui se charge à la vitesse d'escargot et est longue de téraoctets.
Ne pas indexer 404 pages. Les moteurs qui affichent les plus gros indices y parviennent et reçoivent en retour une haine bien méritée.
Cela peut être délicat, mais essayez de détecter les fermes d’équilibrage de charge. Si v329.host.com/pages/article.php?99999 renvoie la même chose que v132.host.com/pages/article.php?99999, ne parcourez pas la liste complète des serveurs de v001.host.com jusqu'à v999. host.com
la source
Je vais juste ajouter une petite chose.
Droits d'auteur et autres problèmes juridiques: je sais que vous écrivez qu'il s'agit de sites Web publics. Il est donc possible qu'il n'y ait pas de droits d'auteur, mais il peut exister d'autres problèmes juridiques liés au stockage des données.
Cela dépendra bien sûr des données du pays dans lequel vous les stockez (et de l'endroit où vous les stockez). Exemple typique des problèmes avec le US Patriot Act par rapport à la directive de l'UE sur la protection des données. Un résumé du problème est que les entreprises américaines doivent donner leurs données à, par exemple. le FBI si on lui demande, sans en informer les utilisateurs, que la directive sur la protection des données stipule que les utilisateurs doivent en être informés. Voir http://www.itworld.com/government/179977/eu-upset-microsoft-warning-about-us-access-eu-cloud
la source
Appelez votre webcrawler ou spider, associé à votre nom. C'est important. Les moteurs d'analyse, etc., recherchent ceux qui vous associent à une ... araignée. ;)
J'ai vu cela se faire via l'en-tête de requête User-Agent
la source
la source