Die "intelligente" Art, das Web zu crawlen

604
Puru

Ich habe ein Projekt, für das ich das Web crawlen muss lyrics, ich implementiere depth-first searchund mache eine Datenbank in einer Liste (die verschachtelte Listen enthält, die später in einer Datei gespeichert werden). Meine Idee ist, den HTML-Inhalt der Website abzurufen, ihn in der Datei zu speichern und dann den Text daraus zu analysieren. Aber das Problem ist, dass es sehr langsam ist und ich keine überflüssigen Seiten (Ad Links) habe. Gibt es eine Lösung oder eine "bessere" Implementierung des Bots?

-1

2 Antworten auf die Frage

1
Dour High Arch

Um konkrete Empfehlungen zu geben, müssen wir Ihren Code sehen. HTML-Analyse ist jedoch ein sehr schwieriges Problem. Verwenden Sie eine vorhandene Parsing-Bibliothek, und versuchen Sie nicht, eine eigene zu erstellen.

Im Allgemeinen ist es besser, Web-Crawler mithilfe der Breitensuche und nicht der Tiefensuche zu implementieren. Bei der Tiefensuche werden oftmals Aufrufe an dieselbe Domäne und denselben Pfad durchgeführt. Dies kann von Websites erkannt werden und Ihr Crawler wird möglicherweise gedrosselt oder sogar blockiert. Breitste Crawler vermeiden dies und haben mehr Möglichkeiten für Optimierungen. B. erkennen, dass zwei Standorte Kopien voneinander sind, und den langsameren Standort aufgeben.

0
DrMoishe Pippik

Die Texte sind oft TXT, die Anzeigen dagegen nicht, daher kann die Suche auf Text beschränkt sein. Der negative Aspekt dabei ist, dass Sie sicherlich einige HTML-Texte vermissen würden.