Ich stelle eine Ersatzwebsite für einen Client bereit, aber er möchte nicht, dass alle alten Seiten in 404s enden. Die alte URL-Struktur beizubehalten war nicht möglich, weil sie abscheulich war.
Ich schreibe also einen 404-Handler, der nach einer angeforderten alten Seite suchen und eine permanente Umleitung zur neuen Seite durchführen soll. Das Problem ist, ich brauche eine Liste aller alten Seiten-URLs.
Ich könnte dies manuell tun, aber es würde mich interessieren, ob es Apps gibt, die mir eine Liste relativer (z. B. / page / path, nicht http: /.../ page / path) URLs liefern, die gerade die Startseite angegeben haben Seite. Wie eine Spinne, aber eine, die sich nicht um den Inhalt kümmert, außer um tiefere Seiten zu finden.
web-crawler
Oli
quelle
quelle
Antworten:
Ich wollte meine eigene Frage nicht beantworten, dachte aber nur darüber nach, einen Sitemap-Generator zu betreiben. Als erstes fand ich, dass http://www.xml-sitemaps.com eine schöne Textausgabe hat. Perfekt für meine Bedürfnisse.
quelle
machen
wget -r -l0 www.oldsite.com
Dann
find www.oldsite.com
würde ich einfach alle URLs enthüllen, glaube ich.Alternativ können Sie diese benutzerdefinierte, nicht gefundene Seite auch bei jeder 404-Anfrage bereitstellen! Das heißt, wenn jemand den falschen Link verwendet, erhält er die Seite, auf der angegeben wird, dass die Seite nicht gefunden wurde, und gibt Hinweise zum Inhalt der Website.
quelle
include
/require
/ etc. Verfügt . Zusammenstellung von Seiten, das wird nicht wirklich funktionieren.Hier ist eine Liste der Sitemap-Generatoren (von denen Sie natürlich die Liste der URLs von einer Site abrufen können ): http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators
quelle
Das Beste, was ich gefunden habe, ist http://www.auditmypc.com/xml-sitemap.asp , das Java verwendet, keine Seitenbeschränkung aufweist und Sie sogar Ergebnisse als unformatierte URL-Liste exportieren können.
Es werden auch Sitzungen verwendet. Wenn Sie also ein CMS verwenden, stellen Sie sicher, dass Sie abgemeldet sind, bevor Sie den Crawl ausführen.
quelle
In einer idealen Welt hätten Sie also eine Spezifikation für alle Seiten Ihrer Site. Sie hätten auch eine Testinfrastruktur, die alle Ihre Seiten zum Testen aufrufen könnte.
Du bist vermutlich nicht in einer idealen Welt. Warum nicht das tun ...?
Erstellen Sie eine Zuordnung zwischen den bekannten alten und den neuen URLs. Weiterleiten, wenn Sie eine alte URL sehen. Ich würde möglicherweise in Betracht ziehen, ein "Diese Seite wurde verschoben, die neue URL ist XXX, Sie werden in Kürze umgeleitet" zu präsentieren.
Wenn Sie keine Zuordnung haben, zeigen Sie die Meldung "Entschuldigung - diese Seite wurde verschoben. Hier ist ein Link zur Startseite" an und leiten Sie sie weiter, wenn Sie möchten.
Protokollieren Sie alle Weiterleitungen - insbesondere diejenigen ohne Zuordnung. Fügen Sie im Laufe der Zeit Zuordnungen für wichtige Seiten hinzu.
quelle
Wget von einer Linux-Box könnte auch eine gute Option sein, da es Schalter für Spider gibt und die Ausgabe ändert.
BEARBEITEN: wget ist auch unter Windows verfügbar: http://gnuwin32.sourceforge.net/packages/wget.htm
quelle
Schreiben Sie eine Spinne, die jedes HTML von der Festplatte einliest und jedes "href" -Attribut eines "a" -Elements ausgibt (kann mit einem Parser durchgeführt werden). Denken Sie daran, welche Links zu einer bestimmten Seite gehören (dies ist eine häufige Aufgabe für eine MultiMap-Datenstruktur). Danach können Sie eine Mapping-Datei erstellen, die als Eingabe für den 404-Handler dient.
quelle
Ich würde mir eine beliebige Anzahl von Tools zur Generierung von Online-Sitemaps ansehen. Persönlich habe ich diese (Java-basiert) in der Vergangenheit verwendet, aber wenn Sie eine Google-Suche nach "Sitemap Builder" durchführen, werden Sie sicher viele verschiedene Optionen finden.
quelle