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 |
Keine Kommentare
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
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 |
Ein Kommentar
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
Wenn du Rechtshänder bist und ein großartiges Bild malen willst, verwende auch deine rechte Hand.
Dieses Projekt in JAVA anzugehen, war eine großartige Idee aus damaliger Sicht. Ich kündige aber hiermit an — zumindest momentan –, dass ich die Sache nochmals angehen möchte, allerdings unter Verwendung von PHP. Es hat einige Zeit gebraucht, um zu erkennen, welchen großen Einfluss die Wahl der Programmiersprache auf meine Art, Dinge zu begreifen und zu verstehen, gehabt hat. Doch nun bin ich an einem Punkt angelangt, an dem ich die Dinge etwas klarer erkennen kann.
Mir ist natürlich klar, dass PHP nicht die Sprache ist, in der man einen Web Crawler schreiben sollte. Doch für den Moment ermöglicht sie es mir, die ersten Ziele schneller — wesentlich schneller — zu erreichen. So, wie es in einer Fremdsprache wesentlich schwerer ist, ein Buch zu schreiben, als in der Muttersprache, so bildetet die Wahl von JAVA eine gewisse Barriere für mich, was das kreative Denken betrifft. Wenn ich mir den bisherigen Code so ansehe, hätte es mich nur ein paar Stunden gekostet, das selbe in PHP zu schreiben — samt MySQL-Anbindung und einem kleinen User-Interface.
Nun, für alle von euch, die meinen Blog vor einigen Monaten entdeckt haben und noch immer an der Sache interessiert sind, bleibt dabei für die in PHP umgeschriebenen Klassen.
Bitte versteht mich nicht falsch: Der Wechsel zurück zu JAVA steht noch immer auf meiner Wunschliste. Vielleicht werde ich dieses Bild nochmal mit meiner linken Hand neu malen. Aber lasst mich die Entwürfe einstweilen mit meiner rechten machen… ;-)
Thanks,
Estigy.
20. August 2007
Geschrieben von
Estigy |
Umgebung |
Keine Kommentare