Wie lade ich Dropbox-Dateien mit dem Befehl wget herunter?


72

Scheint, ich kann Dropbox-Dateien nur mit Explorer wie Chrome und Firefox herunterladen. Wenn ich wget zum Herunterladen verwende, erhalte ich eine Datei im HTML-Format. Warum?

Zum Beispiel können Sie diesen Link öffnen

Sie würden den Inhalt dieser Datei nicht erhalten, warum? Folgendes ist Teil von test.txt, um es herunterzuladen, dies ist überhaupt nicht der Inhalt von test.txt.

Ist es also möglich, Dropbox-Dateien mithilfe des wgetExplorers herunterzuladen ?

document.observe('script:loaded', function() {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } else if (window.jQuery) {
jQuery(function () {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } 

Ich kann mit dem Befehl test.txt nicht abrufen

wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt

Dumme Frage: Waren Sie bei DropBox angemeldet, als Sie versuchten, mit einem Browser herunterzuladen?

1
Mit wgetauf Ihrem Link abrufen test.txt(mit den 4 Bytes "Test") ganz gut auf meiner Seite. Vielleicht verursacht etwas in Ihrem .wgetrcdas?
JJLIN

@jjlin was ist dein Befehl? meins ist oben hinzufügen
hugemeow

5
Ich habe benutzt wget --no-check-cert https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt. Das hat für mich gut funktioniert, aber wenn Sie einen Download erzwingen möchten, sollten Sie es wget --no-check-cert 'https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1'stattdessen versuchen (beachten Sie den ?dl=1Abfrageparameter).
JJLIN

@jjlin also vielleicht ist ein Skript erforderlich, wenn ich die Datei von Dropbox herunterladen möchten :)
hugemeow

Antworten:


21

Der Link in Ihrer Frage ist nicht der Link zur Datei, sondern ein Link zur Dropbox-Seite dieser Datei.
Wenn Sie wgetes herunterladen möchten, kopieren Sie den Link zum direkten Herunterladen aus dem Menü, das beim Drücken der Download-Taste nach rechts angezeigt wird.

In meinem Fall hat das gut funktioniert. Manchmal beziehen sich Probleme beim Herunterladen von Links von außerhalb des Browsers jedoch auf andere Parameter als den Link selbst. Ein häufiges Element, das beim einfachen Kopieren des Links nicht vorhanden ist, sind die Website-Cookies.

Probieren Sie dieses coole FF-Add-On aus , um die richtigen wgetLinks zu erhalten

Und natürlich können Sie den Dropbox-Client auch installieren, insbesondere wenn es sich um eine bekannte und keine Gelegenheitsarbeitsstation handelt. Dies ist der einfachste Weg. Lassen Sie Ihre Box einfach Teil Ihrer Dateistruktur sein und vermeiden Sie komplizierte Downloads.
Siehe diesen Beitrag auf askubuntu.com und die Dropbox- Downloadseite.


4
Beim Versuch, den direkten Link im Browser zu erhalten, wird eine Anzeige für eine Upgrade-Option eingeblendet. Ich sehe die andere Antwort ( superuser.com/a/486351/106977 ) mit einbeziehen ?dl=1, aber das erlaubt einem nicht, an den Link zu gelangen, auch nicht (wahrscheinlich, weil Box die Verwendung verhindert, es sei denn, Sie aktualisieren).
BGoodr

@amotzg gibt es eine Möglichkeit, den Download von Dropbox mit Flag fortzusetzen --continue? Es scheint mir nicht zu funktionieren. ( unix.stackexchange.com/questions/174850/… )
prayagupd


1
Dieses Add-On half bei einem freigegebenen Dropbox-Link, für dessen Download ein Kennwort erforderlich ist. Hinweis: Wenn Sie mit der rechten Maustaste auf die Schaltfläche "Herunterladen" klicken und "Cliget" auswählen, erhalten Sie die URL zur Ausgabe von "? Dl = 0", bei der es sich um eine kleinere Datei handelt. Wenn Sie dies auf? Dl = 1 ändern, wird der richtige Download-Pfad angegeben.
JonTheNiceGuy

116

Einfach ?dl=1am Ende des Links hinzufügen ! Zum Beispiel:https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

Dadurch können Sie die betreffende Datei problemlos abrufen, ohne der Datei etwas hinzuzufügen.

Eine Sache noch! Wenn Sie die Datei an einem anderen Ort speichern möchten, verwenden Sie die folgende -OOption

wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

Und wenn Sie ein bisschen GUI haben möchten, können Sie zenityden Ort markieren, an den die Datei heruntergeladen werden soll!

Hier ist ein Beispielcode:

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

Das ist großartig, funktioniert
sofort

Ich habe gerade Ihren Vorschlag verwendet, um einen freigegebenen Ordner zu erhalten, und eine erstaunliche Zip-Datei (Miss Name) erhalten. Genial! Danke vielmals!!
Rafareino

1
Viel bessere Antwort als die akzeptierte. Dies hat sehr geholfen, danke.
Seiyria

3
Funktioniert diese Methode noch? Mit dem Befehl bekomme wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'ich immer ERROR 400: Bad Request.
Paul Rougieux

Jetzt 500 Internal Server Errorverstehe ich , Dropbox ist ein echter Mist.
Avio

15

Dropbox hat es so geändert, dass wgetes das Richtige tut und die Datei anstelle des Interstitials abruft.

Verwenden Sie "Link teilen", um den direkten Link zur Datei abzurufen.


Dies sollte die richtige Antwort sein, es ist trivial mit dem Share-Link.
davidparks21

Nett! Ich habe eine wget: No matchAusgabe, die mit dem Link in einfachen Anführungszeichen gelöst wurde (aufgrund der ?in der URL vielleicht?)
Matifou

3

Sah diese Frage und dachte, dies könnte jemandem helfen, der versucht, viele Dateien auf einmal herunterzuladen.

Hier ist ein kleines Windows CMD / Batch-Skript, das Sie verwenden können.
Es kann leicht angepasst werden, um unter einer Bash-Shell (Mac / Linux / etc) zu arbeiten.
Es verwendet CURL . WGET sollte auch mit kleinen Anpassungen funktionieren.

1. Installieren Sie Curl für Windows.

2. Fügen Sie die einzelnen SHARED-Links in eine Textdatei ein (1 pro Zeile).

3. Stellen Sie alle Parameter "? Dl = 0" in Ihrer Textdatei auf "? Dl = 1" ein und speichern Sie sie.

4. Kopieren Sie das folgende Skript in eine Datei mit dem Namen 'geturllist.cmd' (oder nach Ihrer Wahl)

5. Öffnen Sie eine CMD-Eingabeaufforderung und führen Sie das CMD-Skript aus.

Heruntergeladene Dateien werden im aktuellen Arbeitsverzeichnis angezeigt, aus dem Sie das Skript ausgeführt haben.

HINWEIS:
Sie müssen SHARED LINKS richtig formatiert haben, damit "Jeder mit dem Link" geöffnet werden kann. Dieses Skript funktioniert NICHT mit kennwortgeschützten Links oder Freigaben, die auf einem Dropbox-Login / einer Dropbox-E-Mail basieren.
HINWEIS:
Wenn die einzelne Datei oder Dateigruppe (automatisch komprimiert) eine bestimmte Größe überschreitet, tritt ein Fehler auf ("Die Datei (komprimiert) ist zu groß. Bitte fügen Sie sie Ihrer Dropbox hinzu."). In diesem Fall müssen Sie das tun, was es verspricht. Dieses Skript funktioniert nicht, da der Freigabelink nicht direkt heruntergeladen werden kann.

Beispiel-Textdatei:
("RandomShareCharacters / Here" wird durch das ersetzt, was im Freigabe-Link steht.)

 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1

geturllist.cmd:

@echo off
set count=0
setlocal ENABLEDELAYEDEXPANSION
IF [%1]==[] GOTO BLANK
SET PARAMETER=%1
SET _PARAMETER=%PARAMETER:~0,2%

IF [%1]==[/?] GOTO HELP
IF [%1]==[--help] GOTO HELP
IF %_PARAMETER%==-h GOTO HELP

IF EXIST %1 (

  for /f "delims=" %%u in (%1) do (

      set /a count=count+1
      curl -kL "%%u" -O -J

      REM For other share sites:
      REM (ZIP EXAMPLE) if no filename type header sent:
      REM > curl -kL "%%u" -o "!count!.zip"
      REM > echo "!count!.zip"
      REM Will download file(s) called 1.zip, 2.zip, etc.
      )
  ) ELSE (
GOTO BLANK
)
GOTO DONE

:HELP
ECHO.
ECHO    Usage:
ECHO.
ECHO    geturllist [path]\[filename]
ECHO.
ECHO.
ECHO    Required Parameters:
ECHO.
ECHO    [filename]  A text file with one url per line
ECHO    -h      Help
ECHO.
GOTO DONE

:BLANK
ECHO.
ECHO Error: no input file found

:HELPMSG
ECHO.
ECHO Try -h for Help

:DONE
ECHO.
ECHO Exiting.
ECHO.

Beispiel Verwendung:

geturllist.cmd X:\somepath\dropbox.txt


1
Abwärtsstimmen ohne Kommentare sind sehr schön. Vielen Dank. Deine Gefühle verletzt?
bshea

1
Unglaublich, warum Leute diese Antwort ffs downvoted, upvoted.
Josyula Krishna

0

Sie werden etwas mit dem Namen "Datei" oder einen seltsamen Namen bekommen ... Wenn Sie diese Datei einfach in das umbenennen, was Sie wollen, wird dies der Trick sein. Die tatsächlich heruntergeladene Datei ist die gewünschte Datei mit dem seltsamen Namen und ohne das Dateitypattribut.


-2

Die einfachste und garantierteste Methode für diese Art von Downloads ist die Verwendung der Entwicklertools von Google Chrome.

  • Drücken Sie F12, um die Entwicklertools zu öffnen
  • Gehen Sie zur Registerkarte Netzwerk
  • Klicken Sie auf den Download-Link, um den Download zu starten
  • Finden Sie das Download-Ereignis in den Netzwerkereignissen
  • Klicken Sie mit der rechten Maustaste auf die Zeile und wählen Sie "Kopieren als CURL (Bash)" oder "Windows", wenn Sie möchten

  • Die URL sieht folgendermaßen aus:

    curl "http://yoururl.com/yourfile" -H "Pragma: no-cache" -H "Origin: http://yoururl.com" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: en-US;q=0.8,en;q=0.6,fr;q=0.4" -H "User-Agent: Mozilla/5.0 bla bla" -H "Content-Type: text/plain;charset=UTF-8" -H "Accept: */*" -H "Cache-Control: max-age=0" -H "Referer: http://yoururl.com/downloadpage" -H "Cookie: e07214fb60a1a; _ga=98987; " -H "Connection: keep-alive"
    
  • Ersetzen curldurchwget

  • Ersetzen -H "some headers"durch--header="some headers"
  • Fügen Sie das in Ihr Bash-Fenster ein und fügen Sie den -oParameter hinzu. (Wenn Sie diesen Parameter nicht hinzufügen, wird die Ausgabe auf die Konsole gedruckt.
  • Drücken Sie die Eingabetaste und genießen Sie Ihren Download.

OP angeforderte Nutzung mit wget.
Twerdster

Sie können leicht von Curl zu Wget
Hüseyin Yağlı
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.