Was sind die wichtigsten Funktionen, die ein Webcrawler unterstützen sollte?

Wenn Sie einen Crawler erstellen, ist es am wichtigsten, die ursprünglichen Server nicht zu überlasten. Viele Server stehen Crawlern heutzutage eher feindlich gegenüber. Wenn Sie eine Site zu hart hämmern, wird die IP-Adresse (n) Ihres Crawlers auf die schwarze Liste gesetzt. Sobald sie auf die schwarze Liste gesetzt wurden, werden Sie auf 1 Suchanfrage pro Minute oder weniger gedrosselt, sodass es unmöglich ist, ihre Site zu crawlen.

  • Richtige Unterstützung für robots.txt
  • Automatische Drosselung basierend auf der Schätzung der Bandbreite und Last des Ursprungsservers.
  • Automatisches Drosseln basierend auf der Schätzung der Änderungshäufigkeit des Ursprungsinhalts.
  • Eine Site-Administrator-Oberfläche, über die Site-Besitzer die Crawling-Geschwindigkeit und -häufigkeit registrieren, überprüfen und steuern können.
  • Verständnis von virtuellem Hosting und Drosselung auch durch Ursprungs-IP-Adresse.
  • Unterstützung für maschinenlesbare Sitemaps.
  • Ordnungsgemäße Priorisierung und Bestellung der Crawl-Warteschlange.
  • Angemessene Erkennung doppelter Domains und doppelter Inhalte, um das erneute Crawlen identischer Sites auf verschiedenen Domains zu vermeiden. (last.fm vs lastfm.com und eine Million anderer Websites, die mehrere Domains für denselben Inhalt verwenden.)
  • Grundlegendes zu GET-Parametern und zu den “Suchergebnissen” vieler sitespezifischer Suchmaschinen. Beispielsweise kann eine Seite mit einigen GET-Parametern auf eine Suchergebnisseite in der internen Suche einer anderen Site verweisen. Sie möchten diese Ergebnisseiten (wahrscheinlich) nicht crawlen.
  • Verständnis und Erkennung von Crawler-Honeypots. (http://www.cs.ucy.ac.cy/~epl425/…)
  • Grundlegendes zu anderen gängigen Linkformaten wie Anmelde- / Abmelde-Links usw.

Und dann haben Sie die gesamte Informationsextraktion von den gecrawlten Seiten, was nicht trivial ist.

Simon Overell hat den Kern tot auf; Sie benötigen etwas, das URLs verbraucht und Seiten speichert. und etwas, das Seiten verbraucht. Normalerweise erstellt der Seitenkonsument URLs für den weiteren Konsum.

Einige andere grundlegende Überlegungen:

  • Sie möchten einen Weg finden, um festzustellen, ob Sie während dieses Laufs bereits eine bestimmte Seite gesehen haben. Viele Websites enthalten mehrere Links zu demselben Inhalt. Außerdem vermeiden Sie auf diese Weise, dass Sie in eine Kette von Zirkelverweisen geraten.
  • Überlegen Sie, ob Sie Parameter behalten oder entfernen möchten. Sie können schwache oder tiefgreifende Auswirkungen auf den Seiteninhalt haben. im Extremfall können sie die Basis einer Spinnenfalle sein.
  • Möglicherweise möchten Sie die Authentifizierung durchführen. Das kann ein sehr komplexes Problem sein, je nachdem, wie weit Sie es bringen wollen.
  • Formen sind häufig undurchsichtig. Es kann nur ein “Danke!” Seite auf der anderen Seite oder mehr als die Hälfte einer bestimmten Site ist möglicherweise dort.

Bei Wikipedia gibt es eine Fülle von Informationen über Crawler ( http://en.wikipedia.org/wiki/Web… ).

Viel Glück!

Nachdem ich Crawler für mein vorheriges Startup, Sentimnt, das eine persönliche Suchmaschine war, schreiben musste, kann ich den Rest der von anderen hinzugefügten Punkte wie folgt ergänzen:

– Stellen Sie sicher, dass Sie mit defekten Seiten umgehen. Es werden alle Arten von fehlerhaften HTML-Seiten angezeigt, die entweder Ihren Datenextraktionsprozess unterbrechen oder die Informationsmenge begrenzen können, die Sie aus einer Seite abrufen können. Nicht jeder schreibt korrektes HTML!

– Für vorübergehende Probleme sorgen: Websites und Server können vorübergehend außer Betrieb sein. Sie müssen es in angemessenen Abständen erneut versuchen und erneut anfordern.

– Machen Sie es zustandslos, damit Sie Warteschlangen und asynchrone Serviceaufrufe skalieren und einen Workflow erstellen können.

– Je nachdem, was Sie mit den Daten tun müssen, möchten Sie möglicherweise die Aktualisierungsrate einer Website schätzen, damit Sie sie nicht zu oft oder zu selten besuchen.