Hallo Micha,
Besonders Probleme haben Redirects gemacht.
Ich habe dann aber eine Quelle im Netz gefunden,
die den entscheidenden Hinweis gab, solange eine
Schleife zu durchlaufen, bis kein Redirekt mehr
auftaucht.
Das kann aber leicht eine Endlosschleife werden.
(Ich glaube, Xenu bricht ab einer bestimmten Anzahl
aufeinanderfolgender Redirects ab.)
Ja, kann man ja einbauen! :-)
Ich habe auf allen möglichen Seiten Fehler gefunden!
Tja, die Welt ist nicht valide ... ;-)
Selbst auf bei großen Firmen wie Sie..ens, die ja
CMS benutzen, was schon Fehler eindämmen sollte.
Diese Aussage ist ein schöner Lacherfolg.
:-)
Läuft über MySql und benutzt ein paar "Tricks" bzgl.
Hashes und MD5 um das Ganze etwas zu beschleunigen
bzw, den Traffic zu minimieren.
Und? Schlägt es Xenu im direkten Vergleich?
Oder linklint? Oder ...
Xenu ist nicht gerade der Hit. Es produziert Fehler bei rel. links. Bspw. meckert es bei http://www.w3research.com an, daß es http://www.w3research.com/../img/transparent.gif nicht gibt. Allerdings ist das so gar nicht verlinkt, sondern mit /img/transparent.gif
Ich hatte damit zunächst auch Probleme, habe das aber mit URI(.pm) lösen können.
Was ganz nett ist, ist die Tatsache, daß das Teil mehrere Threads gleichzeitig abarbeitet.
Aber es ist nicht so sinnvoll gelöst, denn man kann (wieso so oft bei Windoof) nichts bzgl. Timeout einstellen.
Ich habe das seriell gelöst, d.h. ich habe eine DB mit mehreren Tabellen. Dazu gibt es allein drei Tabellen, die eine Rotation ermöglichen, etwa so:
- hole aus "Fetch"
- löse Links auf und speicher in "Wait"
- wenn link nicht zum Host gehört oder Rotationszahl größer X, speichere in "Stop"
Dann gibt es noch zwei Tabellen für "Content" und "Physical", die Title, Description und Keywords (und html-code) bzw. Linkauflösungen und Fehlermeldungen speichern.
Mich würde interessieren, ob es interessant wäre,
daraus ein Projekt zu machen, das als Cluster
funktioniert (verteiltes Fehlersuchen).
Wäre sicherlich spannend - vor allem zu klären, wie
man Mehrfachprüfungen sinnvoll verhindert, ohne dafür
synchronisiertes Schreiben in einen gemeinsamen Daten-
bereich zu benötigen.
(Idee: Über jeden URL eine Art Quersumme berechnen und
mit dieser den Task adressieren, der diesen URL zu
prüfen hat ...)
Quersumme? -> MD5
Das nutze ich schon, um Seiten zu erkennen.
Reiner