2011-06-28 4 views
3

Je ne suis pas sûr si cette question aura une réponse unique ou même concise pour toutes les réponses, mais je pensais que je demanderais pas moins. Le problème n'est pas spécifique à la langue, mais peut avoir une sorte de pseudo algorithme comme réponse. Fondamentalement, j'essaie d'apprendre comment fonctionnent les araignées et d'après ce que je peux dire, aucune araignée que j'ai trouvée ne gère la hiérarchie. Ils listent juste le contenu ou les liens mais pas de commande.hiérarchie dans les sites

Ma question est la suivante: nous regardons un site et pouvons facilement déterminer visuellement les liens qui sont liés à la navigation, au contenu ou externes à un site. Comment pourrions-nous automatiser cela? Comment pourrions-nous aider pro grammaticalement une araignée à déterminer les pages parent et enfant.

Bien sûr, la première réponse serait d'utiliser la structure de répertoires de l'URL. E.g www.stackoverflow.com/questions/spiders araignées est l'enfant des questions, des questions est l'enfant du site de base et ainsi de suite. Mais de nos jours la hiérarchie est généralement plate avec les ids référencés dans l'URL.

Jusqu'ici j'ai 2 réponses à cette question et aimerais quelques commentaires.

1: Occurrence.

Les liens qui se produisent le plus dans toutes les pages seraient doublés comme navigation. Cela semble être le design le plus prometteur, mais je peux voir des problèmes apparaître avec des liens dynamiques et d'autres, mais ils semblent minuscules.

2: Profondeur.

Exemple est combien de fois dois-je cliquer sur un site pour accéder à une certaine page. Cela semble faisable mais si certaines informations sont annoncées sur la page d'accueil qui se trouve réellement au niveau inférieur, elles seront déterminées comme une page ou un nœud de niveau supérieur.

Donc, quelqu'un a-t-il des idées ou des critiques constructives sur la façon de créer une hiérarchie de juges araignée dans les liens.


(Si quelqu'un est vraiment curieux, la partie arrière de l'araignée sera très probablement Ruby on Rails)

Répondre

1

Quel est votre objectif? Si vous souhaitez explorer un plus petit nombre de sites Web et en extraire des données utiles pour un type d'agrégateur, il est préférable de créer un robot d'exploration ciblé (Write crawler pour chaque site).

Si vous voulez explorer un million de pages ... Bien que vous deviez être très familier avec certains concepts avancés d'IA.

Vous pouvez commencer à partir de cet article http://www-ai.ijs.si/SasoDzeroski/ECEMEAML04/presentations/076-Znidarsic.pdf

+0

Oui, je ne suis pas familier avec l'IA. Au moins. L'application interne est conçue pour déterminer la hiérarchie dans un site Web. Ce qui est malheureusement extrêmement subjectif pour les personnes qui recherchent l'application. À la fin, l'option était de déterminer la hiérarchie en fonction de la page que vous deviez parcourir pour en obtenir une autre. Je pensais que c'était juste. D'autres n'ont pas. Construire des robots ciblés est hors de question dans ce cas. Ils veulent un crawler taille unique. – overtone

+0

Juste pensé qu'il vaut la peine de mentionner. Même Google a des problèmes avec de telles choses. Et ils se spécialisent dans cela. La hiérarchie de site peut être extraite d'une URL bien formatée ou de bredcrump. Mais, même pour que les robots d'exploration préfèrent http://schema.org/. Ils n'essaient même pas de deviner quelle est la hiérarchie sur le site. – Grzegorz

Questions connexes