Building a webcrawler

ToSCA, die Entwicklung eines Spiders

robots.txt analysiert

Im Blog von Dr. Web wurde heute ein interessanter Artikel bezüglich der Verwendung von robots.txt publiziert: Andrew Wooster hatte mit einem eigenen Crawler 4,6 Millionen Domains auf deren robots.txt hin untersucht und dabei sehr interessante Ergebnisse erhalten: Nicht nur finden sich dort detaillierte Aufstellungen über die erhaltenen Status-Codes und Mime-Typen, sondern er listet auch eine Vielzahl von weit verbreiteten Fehlern und weniger verbreiteten Kuriositäten auf.

Das erinnert mich daran, dass ToSCA endlich auch die Inhalte der robots.txt beachten sollte… ;-)

26. September 2007 Geschrieben von Estigy | Sonstiges | Ein Kommentar

Version 0.02

Version 0.02 (Download zip) ist nur ein kleines Update, um euch beim Ausprobieren des Scripts weniger Schwierigkeiten zu bereiten:

  • Neu: Vor dem Herunterladen des Contents von einer URL wird nun geprüft, ob es sich überhaupt um eine HTML-Datei handelt. Nur dann wird der Inhalt geladen und nach neuen Links geparst. Dafür wird ein eigener “HEAD”-Request an den Zielserver gestellt. Das bringt zwar für jede einzelne URL ein paar Bytes zusätzlichen Traffic, erspart aber möglicherweise das Herunterladen einer 10 MB großen PDF-Datei. Und dafür kann man schon einige Head-Requests senden… ;-)
  • Fixed: Bug #1, “Pear::Net_URL2 wird auf Linux nicht gefunden”

19. September 2007 Geschrieben von Estigy | Sonstiges | Ein Kommentar

Eclipse for everyone

Nach einem sehr inspirierenden Artikel in der letzten c’t bin ich inzwischen auf Eclipse umgestiegen: Die OpenSource-Entwicklungsumgebung bietet nämlich nicht nur ausgereifte Werkzeuge für Java-Entwickler. Mit den PHP Development Tools bekommt man eine sehr aufgeräumte PHP-IDE, die sich hinter kommerziellen Produkten nicht zu verstecken braucht.

Auf jeden Fall kann ich Eclipse allen empfehlen, die PHP programmieren möchten, aber auf OpenSource setzen wollen.

15. September 2007 Geschrieben von Estigy | Umgebung | 2 Kommentare

Version 0.01

So, die erste Version hat’s nun endlich geschafft:

Version 0.01 (Download zip)

  • Startet bei einer vorgegebenen URL (muss momentan noch händisch in die DB eingetragen werden)
  • Von dort aus werden Links abgegrast (vorerst mal nur <a href=”…”>)
  • Wandelt relative in absolute URLs um
  • Merkt sich, welche URLs schon besucht wurden, um Redundanzen zu verindern
  • Parst die Seite nach dem robots-Metatag und beachtet nofollow und noindex
  • Nach 10 gecrawlten Seiten bricht der Prozess ab

Voraussetzung: PHP 5 (allow_url_fopen = on), MySQL

Folgende PEAR-Pakete werden von ToSCA derzeit benötigt:

  • HTTP_Request
  • Log
  • MDB2 (mit dem MySQL-Treiber)
  • Net_URL2

Vorsicht: Der Crawler ist noch nicht das, was man unter “wohlerzogen” verstehen würde. Weder beachtet er das, was in einer allfällig vorhandenen robots.txt steht, noch nimmt er darauf Rücksicht, dass eine Domain nicht zu oft innerhalb kurzer Zeit besucht wird. Daher möchte ich momentan noch um einen sehr vorsichtigen und behutsamen Umgang mit dem Crawler bitten. Dass der Vorgang nach 10 gecrawlten URLs automatisch beendet wird, kommt nicht von ungefähr…

Auch wenn die Files momentan noch ohne besondere Erklärung zum Downloaden sind, würde ich mich schon jetzt über ein paar Reaktionen von euch freuen!

LG, Estigy.

3. September 2007 Geschrieben von Estigy | Versionen | 3 Kommentare