Si vous souhaitez obtenir une réponse détaillée de prendre un coup d'oeil à la section 3.8 du présent document, qui décrit l'URL-vu de test d'un système moderne de grattoir:
Dans le cadre de l'extraction de liens, tout
Le Web crawler permettra de rencontrer de multiples
les liens vers le même document. Pour éviter
le téléchargement et le traitement d'un document
plusieurs fois, une URL-vu test doit
être effectuée sur chaque extrait lien
avant l'ajout de l'URL de la frontière.
(Une conception alternative serait de
au lieu d'effectuer l'URL-vu test quand
l'URL est retiré de la frontière,
mais cette approche conduirait à une
beaucoup plus de frontière.)
Pour effectuer la
URL-vu de test, nous conservons toutes les
Url vus par Mercator dans canonique
forme dans un grand tableau intitulé URL
ensemble. Encore une fois, il y a trop d'entrées
pour eux tous pour s'adapter à la mémoire, donc comme
le document d'empreintes digitales ensemble, l'URL
ensemble est stocké principalement sur le disque.
Pour enregistrer
de l'espace, nous ne stockons pas les textes
la représentation de chaque URL dans l'URL
, mais plutôt à une taille fixe
somme de contrôle. Contrairement aux empreintes digitales
présenté au contenu-vu du test
document d'empreintes digitales ensemble, les flux de
de Url testé par rapport à l'URL a
un montant non négligeable de la localité. Pour
réduire le nombre d'opérations sur le
sauvegarde de fichier de disque, nous avons donc garder
un cache en mémoire populaire Url.
L'intuition de ce cache est que
des liens vers des Url sont tout à fait commun,
si la mise en cache les plus populaires dans la mémoire
va conduire à une forte en mémoire frappé
taux d'.
En fait, l'utilisation d'une mémoire
cache de 218 entrées et de la LRU-comme
l'horloge de la politique de remplacement, nous atteindre
un ensemble de taux de succès sur la mémoire
cache de 66,2%, et un taux de succès de 9,5%
sur la table de récemment ajoutée Url,
pour un net taux de succès de 75.7%. En outre,
de la 24,3% des demandes qui manquent dans
à la fois le cache de populaire Url et le
table de récemment ajoutée Url, sur
1=3 produire des hits sur le tampon dans notre
fichier à accès aléatoire de la mise en œuvre,
qui réside également dans l'espace utilisateur. L'
résultat net de l'ensemble de cette mise en mémoire tampon est
que chaque test, nous avons effectuer
sur l'URL de l'ensemble des résultats dans la moyenne
de 0,16 chercher et de 0,17 lire noyau
appels (une fraction de qui sont
servi du noyau du système de fichiers
tampons). Ainsi, chaque URL de l'appartenance
test induit un sixième autant de noyau
les appels d'adhésion d'essai sur le
document d'empreintes digitales ensemble. Ces
les économies sont purement en raison de la quantité
de URL localité (c'est à dire, la répétition de
populaire Url) inhérente dans le flux
de Url rencontrés lors d'une analyse.
En gros, ils hachage toutes les Url avec une fonction de hachage qui garantit unique hachages pour chaque URL et en raison de la localité d'Url, il devient très facile de trouver des Url. Google, même open-source leur fonction de hachage: CityHash
AVERTISSEMENT!
On pourrait aussi parler de bot pièges!!! Un bot piège est une section d'une page qui continue de générer de nouveaux liens avec une Url unique, et vous obtiendrez donc pris au piège dans une "boucle infinie", en suivant les liens qui sont desservies par cette page. Ce n'est pas exactement une boucle, car une boucle serait le résultat de la visite de la même URL, mais c'est une chaîne infinie d'Url qui vous devriez éviter de l'analyse.
Mise à jour 12/13/2012- le jour après que le monde était censé mettre fin à l' :)
Par Fr0zenFyr commentaire: si l'on utilise le AOPIC algorithme pour la sélection de pages, puis c'est assez facile à éviter bot-les pièges de la boucle infinie genre. Voici un résumé de la façon dont AOPIC œuvres:
- Obtenir un ensemble de N de graines de pages.
- Allouer un montant X de crédit à chaque page, de telle sorte que chaque page X/N de crédit (c'est à dire une quantité égale de crédit), avant de ramper a commencé.
- Sélectionnez une page P, où P est le montant le plus élevé de crédit (ou si toutes les pages ont le même montant de crédit, l'analyse d'une page au hasard).
- Analyse de la page P (disons que P a 100 crédits lorsqu'il a été analysé).
- Extraire tous les liens à partir de la page P (disons il y a 10 d'entre eux).
- Définir les crédits de P à 0.
- Prendre 10% "impôt" et de les attribuer à un Lambda de la page.
- Allouer un montant équivalent de crédits de chaque lien trouvé sur la page de P à partir de P original du crédit de la taxe: (100 (P crédits) - 10 (10% de taxe))/10 (liens) = 9 crédits par chaque lien.
- Répétez à partir de l'étape 3.
Depuis le Lambda page continu de collecte de l'impôt, par la suite il sera la page avec le plus grand montant de crédit et nous aurons à "ramper". Je dis "ramper" entre guillemets, parce que nous ne sommes pas réellement faire une requête HTTP pour le Lambda page, nous venons de prendre ses crédits et de les distribuer de manière égale à toutes les pages de notre base de données.
Depuis bot pièges uniquement à donner des liens internes de crédits et qu'ils ont rarement de crédit de l'extérieur, ils n'aura de cesse de fuite de crédits d'impôt) pour le Lambda de la page. Le Lambda page de distribuer des crédits à toutes les pages de la base de données de manière uniforme et à chaque cycle, le bot piège de la page va perdre de plus en plus de crédits, jusqu'à ce qu'il a si peu de crédits qu'il n'est jamais analysé de nouveau. Cela n'arrivera pas avec de bonnes pages, parce que souvent ils obtiennent des crédits de back-liens sur d'autres pages. Cela se traduit également dans une dynamique de page rank, et ce que vous remarquerez est que chaque fois que vous prenez un instantané de votre base de données, afin que les pages par le montant des crédits qu'ils ont, alors ils seront très probablement être commandé à peu près en fonction de leur véritable rang de page.
Cette seulement éviter les bot les pièges de l'infini-en boucle, mais il y a beaucoup d'autres bot pièges que vous devriez regarder dehors pour et il y a des moyens de les contourner.