Ich versuche, eine Website mit wget zu spiegeln, möchte aber nicht viele Dateien herunterladen. Daher verwende ich die --reject
Option von wget, um nicht alle Dateien zu speichern. Wget lädt jedoch weiterhin alle Dateien herunter und entfernt die Datei anschließend, wenn sie mit meiner Ablehnungsoption übereinstimmt.
Gibt es eine Möglichkeit, wget anzuweisen, bestimmten Links nicht zu folgen, wenn sie mit einem Shell-Platzhalter übereinstimmen? Wenn wget dies nicht kann, gibt es einen anderen allgemeinen Linux-Befehl, der dies kann?
linux
wget
mirror
mirror-site
Rory
quelle
quelle
Antworten:
Sie können auch HTTrack ausprobieren , das IMO eine flexiblere und intuitivere Einschluss- / Ausschlusslogik bietet. Etwas wie das...
Die Regeln werden der Reihe nach angewendet und überschreiben vorherige Regeln ...
quelle
Sieht so aus, als wäre dies in wget nicht möglich
quelle
Unter dem Abschnitt --reject von 'man wget':
"Beachten Sie, dass wenn eines der Platzhalterzeichen *,?, [Oder] in einem Element von acclist oder rejlist erscheint, es als Muster und nicht als Suffix behandelt wird."
Wenn Sie dies tun, möchten Sie möglicherweise Beispiele für die von Ihnen verwendeten Muster geben und angeben, was Ihrer Meinung nach übereinstimmen sollte, und das ist nicht der Fall. Sie sagen, sie passen zusammen, aber sind Sie sicher?
Stellen Sie außerdem sicher, dass Sie diese Liste in Anführungszeichen setzen, damit die Shell diese Platzhalter nicht erweitert, bevor Sie die Argumente an wget übergeben.
Selbst wenn Ihr System nicht Version 1.12 hat, die Dateitypen Abschnitt des Handbuchs lesen Sie hier . Gemäß dem Änderungsprotokoll hat der Betreuer einige Einschränkungen hinzugefügt:
quelle
Sie können die Rekursionsstufe mit der
-l NUMBER
Option einschränken , wenn dies hilfreich ist (ohne einem bestimmten Regex-Muster zu folgen).Eine Stufe von "2" lädt index.html, seine Unterwebsites / images / etc und die Links auf der Unterwebsite herunter.
quelle
Wie benutzt man wget? versuche es so zu benutzen:
Dieser Befehl ignoriert GIF-, JPG- und SWF-Dateien.
quelle
Eine Problemumgehung wäre, wget über einen Proxyserver auszuführen. Stellen Sie Ihren Proxy so ein, dass bestimmte Muster nicht zulässig sind. Dies würde wget daran hindern, sie überhaupt herunterzuladen.
wget lädt eine Datei herunter und entfernt sie, die dem -R-Muster entspricht. Es kann auch mit Mustern übereinstimmen, nicht nur mit Erweiterungen oder Teilen von Dateinamen. Es hindert wget jedoch nicht daran, zuerst herunterzuladen und später zu löschen.
httrack hat einige nette Funktionen, aber meiner Erfahrung nach kann die Art und Weise, wie eine "Datei" gespeichert wird, etwas eigenartig sein, z. B. wenn httrack auf index.asp stößt. Type = BASIC & PAGEID = 2234234
kann es speichern, aber Sie müssen es anweisen , um die Datei zu erhalten Teile der Abfrage,
z. B.% h% p /% n% [TYP: @TYPE = ::]% [PAGEID: PAGEID = ::].% Wenn
das @ ein Platzhalter für ein Fragezeichen ist, können Sie die Dateien später umbenennen. oder vielleicht stattdessen einem Fragezeichen entkommen? Das Problem ist, dass.% t am Ende Ihrer URI eine '.html' hinzufügt, die ursprünglich keine '.html' hatte. Wenn Sie sie entfernen, fehlt Bildern, die von httrack heruntergeladen werden, eine Dateierweiterung.
Besser wget IMHO verwenden
quelle