wgetコマンドを使用してドロップボックスファイルをダウンロードする方法は?


72

chromeやfirefoxなどのエクスプローラーを使用してドロップボックスファイルのみをダウンロードできるようです。wgetを使用してダウンロードすると、html形式のファイルが取得されます。どうして?

たとえば、このリンクを開くことができます

このファイルのコンテンツを取得できないのはなぜですか?以下は、それをダウンロードするtest.txtの一部です。これはtest.txtの内容ではありません。

wgetエクスプローラではなくDropboxファイルをダウンロードすることは可能ですか?

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)                        });
                    } 

コマンドでtest.txtを取得できません

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


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

愚かな質問:ブラウザを使用してダウンロードしようとしたときにDropBoxにログインしましたか?

1
私の側wgetでは、リンクの取得test.txt(4バイトの「テスト」を含む)で問題なく使用できます。たぶんあなたの何かが.wgetrcこれを引き起こしていますか?
jjlin

@jjlinあなたのコマンドは何ですか?私の追加
-hugemeow

5
使用しましたwget --no-check-cert https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt。それは私にはうまくいきましたが、ダウンロードを強制したい場合は、wget --no-check-cert 'https://dl.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1'代わりに試すことを検討するかもしれません(?dl=1クエリパラメータに注意してください)。
-jjlin

@jjlinですので、dropboxからファイルをダウンロードする場合はスクリプトが必要な場合があります:)
hugemeow

回答:


21

質問のリンクはファイルへのリンクではなく、このファイルのDropboxページへのリンクです。ダウンロード
に使用wgetする場合は、右のダウンロードボタンを押したときにドロップするメニューから直接ダウンロードへのリンクをコピーする必要があります。

私の場合、それはうまくいきました。ただし、ブラウザーの外部からリンクをダウンロードする際の問題は、リンク自体以外のパラメーターに関連する場合があります。リンクをコピーするだけでは存在しない一般的な要素は、サイトCookieです。

このクールなFFアドオンを試して、正しいwgetリンクを取得してください

また、特に、カジュアルなワークステーションではなく、既知のワークステーションについて話している場合は、もちろんDropboxクライアントをインストールできます。これが最も簡単な方法です。ボックスをファイル構造の一部にすると、複雑なダウンロードの必要がなくなります。
このaskubuntu.comの投稿、およびDropboxダウンロードページを参照してください。


4
ブラウザで直接リンクを取得しようとすると、アップグレードオプションの広告がポップアップ表示されます。を含む他の答え(superuser.com/a/486351/106977)が表示さ?dl=1れますが、リンクに到達することもできません(おそらく、アップグレードしない限りBoxが使用できないためです)。
-bgoodr

@amotzgは、フラグ付きでdropboxからのダウンロードを再開する方法があり--continueますか?私には機能していないようです。(unix.stackexchange.com/questions/174850/...
prayagupd

@PrayagUpd、このstackoverflow.com/questions/18084677/…を見つけました。
amotzg

1
このアドオンは、ダウンロードにパスワードが必要な共有Dropboxリンクに役立ちました。[ダウンロード]ボタンを右クリックして[クリジェット]を選択すると、?dl = 0出力へのURLが表示されます。これは小さなファイルです。これを?dl = 1に変更すると、正しいダウンロードパスが得られます。
-JonTheNiceGuy

116

?dl=1リンクの最後に追加するだけです!例えば:https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

これにより、ファイルに何も追加せずに、問題のファイルを細かく取得できます。

もう一つ!他の場所にファイルを保存したい場合は、-Oこのようなオプションを使用します

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

また、GUIを少し使いたい場合zenityは、ファイルをダウンロードする場所をマークするために使用できます。

コードの例を次に示します。

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

それは...箱から出して動作しますが、素晴らしいです
slotishtype

あなたの提案を使用して共有フォルダーを取得し、素晴らしいzipファイルを受け取りました(名前が間違っています)。驚くばかり!どうもありがとう!!
ラファリーノ14年

1
受け入れられたものよりもはるかに良い答え。これは大いに役立ちました、ありがとう。
セイリア

3
この方法はまだ機能していますか?wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'私はコマンドを使用して取得し続けERROR 400: Bad Requestます。
ポールルージュ

今、私は得る500 Internal Server Error、Dropboxは本当にがらくたです。
Avio

15

Dropboxはwget、インタースティシャルの代わりに正しいことを行い、ファイルを取得するように修正しました。

「共有リンク」を使用して、ファイルへの直接リンクを取得します。


これは正解であるはずです。共有リンクでは簡単です。
-davidparks21

いいね!wget: No match出力が得られましたが、それは単一引用符で囲まれたリンクを使用して解決されました(?おそらくURLにあるのですか?)
Matifou

3

この質問を見て、これは誰かが一度に多くのファイルをダウンロードしようとしているのを助けるかもしれないと思った。

使用できる小さなWindows CMD / Batchスクリプトを次に示します。
Bashシェル(Mac / Linux /など)で動作するように簡単に調整できます。CURLを
使用します。WGETは、いくつかの小さな調整でも動作するはずです。

1. Windows用のCurlをインストールします。

2.個々のSHAREDリンクをテキストファイルに入れます(1行に1つ)。

3.テキストファイルのすべての「?dl = 0」パラメータを「?dl = 1」に調整して保存します。

4.以下のスクリプトを「geturllist.cmd」というファイルにコピーします(または選択)

5. CMDプロンプトを開き、CMDスクリプトを実行します。

ダウンロードしたファイルは、スクリプトを実行した現在の作業ディレクトリに表示されます。

注:
「リンクを知っている全員」が開くことができる、適切にフォーマットされた共有リンクが必要です。このスクリプトは、パスワードで保護されたリンクまたはDropboxログイン/メールに基づく共有では機能しません。
注:
単一のファイルまたはファイルグループ(自動圧縮)が特定のサイズを超えると、エラーで失敗します(「(zip)ファイルが大きすぎます。Dropboxに追加してください。」)。この場合、言うとおりに行う必要があります。共有リンクは直接ダウンロードできないため、このスクリプトは機能しません。

テキストファイルの例:(
「RandomShareCharacters / Here」は、共有リンクの内容に置き換えられます)

 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.

使用例:

geturllist.cmd X:\somepath\dropbox.txt


1
コメントのないダウン投票は素敵です。ありがとう。あなたの気持ちを傷つけますか?
bshea

1
人々がなぜこの答えを支持しなかったのか信じられない。
ジョシュラクリシュナ

0

「ファイル」という名前または奇妙な名前を取得することになります...そのファイルの名前を好きなものに変更するだけでうまくいきます。実際にダウンロードされるファイルは、ファイルタイプ属性を持たない、奇妙な名前のファイルだけです。


-2

これらのタイプのダウンロードで最も簡単で最も保証された方法は、Google Chromeの開発者ツールを使用することです。

  • F12キーを押して開発者ツールを開きます
  • ネットワークタブに移動
  • ダウンロードを開始するには、ダウンロードリンクを押してください
  • ネットワークイベントでダウンロードイベントを見つける
  • 必要に応じて、行を右クリックし、「cURL(bash)としてコピー」またはウィンドウを選択します

  • URLは次のようになります。

    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"
    
  • 交換するcurlwget

  • 交換する-H "some headers"--header="some headers"
  • それをbashウィンドウに貼り付けて、-oパラメーターを追加します。(このパラメーターを追加しない場合、出力はコンソールに出力されます。
  • Enterキーを押して、ダウンロードをお楽しみください。

OPはwgetでの使用を要求しました。
twerdster

あなたは簡単にカールからのwgetに変換することができます:stackoverflow.com/a/25044709/531524
フセインYağlı
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.