Web-Cralwer-Algorithmus: die Tiefe?
Arbeite ich an einem crawler und müssen genau verstehen, was gemeint ist mit "link-Tiefe". Nehmen nutch zum Beispiel: http://wiki.apache.org/nutch/NutchTutorial
Tiefe an, die link-Tiefe von der root-Seite werden sollte
gecrawlt.
So, sagen, ich habe die domain www.domain.com
und wollte das Crawlen einer Tiefe von, sagen wir, 3
- was muss ich tun? Wenn eine Website dargestellt werden können, als einen binären Baum, dann würde es kein problem sein, denke ich.
Sie sagte, einer Website dargestellt werden können, wie ein binärer Baum, aber ich denke, dass es könnte werden als Grafik dargestellt, da links link, um einander mehr als einmal und kreuzen einander. Vielleicht haben Sie sogar am Ende der Sackgasse links, die nie link zu anderen Seiten, aber nur, um es sich selbst. So können wir betrachten die web-site oder sogar das internet als einen Graphen, denke ich.
InformationsquelleAutor StackOverflowNewbie | 2010-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Link-Tiefe ist die Anzahl der "hops" eine Seite ist der Weg von der Wurzel, wo ein "hop" bezeichnet einen link auf einer Seite. Der Grund Nutch hat diese Einschränkung ist, dass links sehr "weit Weg" von der Hauptseite aus sind unwahrscheinlich zu halten, viel Informationen (die Haupt-Seite wird ein link zu den wichtigsten Informationen, so dass die weiter du kommst, desto mehr detaillierte Informationen, die Sie finden), dass es zwar sehr viele von Ihnen, so dass Sie jede Menge Speicherplatz, Rechenzeit für das ranking, und die Bandbreite.
Nutch verwendet daher einen Algorithmus Schema bekannt als depth-limited Suche gebunden Laufzeit-und Speicherplatz-Nutzung. Wenn Sie nicht verwenden diese Heuristik, es würde kriechen müssen eine ganze Seite rank aller Seiten und finden Sie die top - N.
Kriechen in der Tiefe, 3, implementieren Sie diesen Algorithmus und geben Sie eine Tiefe Bindung und drei. Die nette Sache über depth-limited search ist, dass es eine Variante der Tiefensuche (DFS), so dass es sehr platzsparend:
Und Nein, eine Website kann nicht allgemein dargestellt werden als Binär-Baum; es ist ein gerichteter graph. Wenn Sie irgendwie entfernen Sie die backlinks, dann wird es ein Mehrwege-Baum. So oder so, viele Seiten sind zu groß, um Speicher für Ihre crawler.
Durch die Rekursion: Sie rufen es mit einem zweiten argument 3. d = 0, (base case), kehrt sofort; im rekursiven Aufruf d wird um eins verringert.
InformationsquelleAutor Fred Foo
www.domain.com, depth 0
esInformationsquelleAutor thejh
Ich denke, die "Tiefe" ist die Anzahl wie oft der crawler "folgt ein link".
Sagen, starten Sie von der root-Seite. Folgen Sie jeweils den links auf dieser Seite: dies ist die Tiefe 1. Für jede Ziel-Seiten, Sie Folgen Sie den links: das ist die Tiefe 2, usw.
Beachten Sie, dass es "Zyklen", während die folgenden links. Die Struktur ist nicht ein Baum, sondern ein graph.
InformationsquelleAutor ChrisJ
Link-Tiefe an, wie viele links, die Sie Folgen müssen, bevor Sie erreichen einen link gegeben.
Beispiel: example.com links zu example.com/foo.html die links zu google.com. Daher google.com hat einer link-Tiefe von 2 relativ zu example.com wie können Sie es erreichen, folgende 2 links.
Kriechen example.com bis zu einer Tiefe von 3, Sie würden Folgen Sie den links zu einer maximalen Tiefe von 3 und dann halt folgenden links. Ohne diese Beschränkung könnte einfach ewig so weitergehen.
Beispiel: example.com links zu example.com/foo.html und example.com/bar.html. Sie Folgen diesen zwei links, die links auf die Sie verlinken und dort stoppen.
Hinweis: Die root-Seite hat eine Tiefe von 0.
InformationsquelleAutor marcog
Einer Website Stamm ist bei der Tiefe 0. Dokumente erreichen Sie durch die Verwendung von links in der Wurzel sind in der Tiefe 1. Dokumente können Sie wiederum der Reichweite von links in Dokumenten, die in einer Tiefe von 1 wäre in der Tiefe 2. Und so weiter.
Je nach crawler-dies kann nur Dokumente in derselben Website/domain (üblich) oder gehostete Dokumente anderswo.
Meisten Websites sind nicht darstellbar, indem ein binärer Baum, wird als "root" mehr als zwei "Knoten".
InformationsquelleAutor Roadmaster
Sowie im Falle von Nutch, die Tiefe argument ist ziemlich misnommer, es bedeutet nur, die Anzahl der Schleifen der crawler durchläuft. So erreichen Sie Seiten, das sind 3 links, die Weg von Ihrem seed-urls... auf einer bestimmten Website könnte es in der Tiefe von 3... das heißt, wenn Sie die hand innerhalb der top-N-Grenzwerte.
InformationsquelleAutor millebii
Tiefe ist die Anzahl der Schrägstriche es den url-Pfad
Beispiel http://www.google.com/foo/bar/baz hat eine Tiefe von 3
InformationsquelleAutor Ricky Wilson