Ich versuche, einen alten Reviewboard-Server, der mir gehört, zu crawlen, damit ich eine statische Kopie erstellen und diese archivieren kann. Dazu verwende ich wget gemäß den Empfehlungen einiger Leute und verwende die empfohlene Methode zum Crawlen und Herunterladen eines Servers, und zwar folgendermaßen:
wget --recursive --no-clobber --page-requisites --html-extension --convert-links --domains $DOMAIN --http-user $USERNAME --ask-password $THE_SERVER
Der Server erfordert jedoch eine LDAP-authentifizierte Anmeldung, sodass ich immer nur die Anmeldeseite und einige zugehörige Dateien erhalte. Dasselbe Problem tritt auf, wenn ich nur mache, --user
anstatt --http-user
.
Meine Frage lautet: Kann ich eine LDAP-Authentifizierung mit wget durchführen und wenn ja, wie?
Da ich sicher bin, dass diese Kommentare kommen werden:
- Ich habe bereits mit rb-tools ein JSON-Archiv erstellt, würde aber eine statische Webkopie stark bevorzugen.
- Ich habe die Möglichkeit, anonymen schreibgeschützten Zugriff zuzulassen, da ich Administrator auf dem Server bin, möchte dies jedoch nach Möglichkeit vermeiden.
Antwort1
LDAP ist kein AuthentifizierungstoolMechanismus– es ist lediglich ein KontoLagerungBackend; es ist im Wesentlichen dasselbe wie das Speichern von Konten in MySQL oder Ähnlichem. Daher gibt es für HTTP-Clients keine „LDAP-Authentifizierung“.
Die eigentlichen Mechanismen HTTPhatsind „Basic“ oder „Digest“ für kennwortbasierte Anmeldungen oder „Negotiate“ für Kerberos-basierte Anmeldungen; die --http-user
Option würde funktionieren, wenn Ihre Website eine davon verwenden würde.
Ihre Website verwendet jedoch höchstwahrscheinlich eine auf Formularen/Cookies basierende Anmeldeseite, die für HTTP-Clients nicht von einer normalen Weiterleitung auf eine normale Webseite zu unterscheiden ist. Wgetwird nichtin der Lage sein, diese Formulare automatisch zu erkennen und auszufüllen.
Wenn das der Fall ist, was SiekönnteMelden Sie sich einfach über Ihren normalen Webbrowser an und kopieren Sie dann die erforderlichen Sitzungscookies in die „Cookie Jar“-Datei von wget (oder übergeben Sie sie möglicherweise direkt mit --header
). Anschließend erkennt die Website Sie als angemeldet.
Wenn Sie in Chrome oder Firefox „Entwicklertools“ → „Netzwerk“ öffnen, wird jede Netzwerkanforderung die Option „Als cURL kopieren“ enthalten, die Ihnen eine vollständige curl
Befehlszeile bietet. Suchen Sie die spezifische --header …
Option, die Ihr Sitzungscookie sendet, und geben Sie sie an wget weiter.