Laden Sie eine Datei von einer Website in der Befehlszeile in Linux herunter

2275
Vicky

Ich muss eine Datei von einer Website herunterladen, deren URL wie folgt formatiert ist:

http://www.server.com/downloads/1234/ 

Dadurch wird auf eine ZIP-Datei umgeleitet, die gespeichert werden muss. Es ist auch erforderlich, sich anhand des Benutzernamens und des Kennworts zu authentifizieren.

Ich habe versucht, zu verwenden wget, curlund lynxohne Glück.

AKTUALISIEREN:

  • wgetfunktioniert nicht mit Weiterleitung. Es lädt einfach die Webseite anstelle der ZIP-Datei herunter.
  • curl gibt den Fehler "Maximale Umleitung überschritten> 50"
  • lynx gibt auch den gleichen Fehler.
2
Bekommst du Fehler oder funktioniert es einfach nicht? vor 12 Jahren 1
Wie haben Sie lynx / curl / wget aufgerufen? Welchen Fehler hast du bekommen? Noufal Ibrahim vor 12 Jahren 2
Ich habe die Frage aktualisiert .. Vicky vor 12 Jahren 0
Wenn Sie sich anmelden müssen und die Site dann umleitet, müssen Sie sich authentifizieren (Ihren Benutzer / Pass übergeben), wahrscheinlich einen POST, und dann das Cookie verwenden, das in der nächsten Anforderung zurückgegeben wird. Der Curl-Fehler, den Sie erhalten, ist, dass Sie wahrscheinlich einen Parameter oder ein Cookie in der Umleitung vermissen (z. B. setzen Sie ein Session-Cookie, und Sie geben es nicht an die Umleitung weiter, so dass es Sie umleitet und Sie dann zurück ... Endlosschleife vielleicht???). vor 12 Jahren 1

1 Antwort auf die Frage

3
Yanick Rochon

Wget unterstützt die Umleitung, funktioniert das?

wget --user=USER --password=PASS --max-redirect URL 

Beachten Sie, dass, wenn die Site HTTP - Authentifizierung nicht implementiert (erfordern eine Formularübermittlung via GET oder POST), dann werden Sie die Einrichtung benötigen etwas mehr Arbeit (angesichts der wenig Informationen, die Sie über die Website geben, wo die Datei ist, eine gute Antwort ist schwer zu geben)

wget --post-file=datafile --keep-session-cookies --max-redirect URL 

und du datafilekönntest aussehen

username=USER password=PASS 

wo usernameund passwordsollte der Name der übergebenen Formularfelder sein.

HINWEIS: Die Site muss zur eigentlichen Zip-Datei umleiten und nicht zu einer anderen Seite, auf der eine Verknüpfung zur Zip-Datei besteht. In diesem Fall müssen Sie ein Parsing-Skript schreiben, da weder Curl noch Wget Ihnen helfen. Sie sind Werkzeuge, um Inhalte von einer bestimmten URL abzurufen. Sie sollen nicht "erraten", dass sie möchten, dass sie abgerufen werden. Sie laden einfach das herunter, was der Server sendet.