como baixar arquivos dropbox usando o comando wget?

59

Parece que eu só posso baixar arquivos dropbox usando o explorer como o chrome e o firefox. Se eu usar o wget para baixar, então eu pegaria um arquivo que está em formato html. Por quê?

Por exemplo, você pode abrir este link

  • link > com o explorador, mas se você usar

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

Você não obteria o conteúdo desse arquivo, por quê? O seguinte é parte do test.txt para baixá-lo, este não é o conteúdo do test.txt em tudo.

Então é possível baixar arquivos do Dropbox usando wget em vez de explorador?

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

Não consigo obter o test.txt com o comando

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


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt
    
por hugemeow 06.09.2012 / 07:14

6 respostas

16

O link na sua pergunta não é o link para o arquivo, é um link para a página do Dropbox deste arquivo.
Se você quiser usar o wget para baixá-lo, copie o link para fazer o download direto no menu que é exibido ao pressionar o botão de download para a direita.

No meu caso, isso funcionou bem. No entanto, às vezes, problemas no download de links de fora do navegador estão relacionados a outros parâmetros além do próprio link. Um elemento comum que não existe quando você simplesmente copia o link são os cookies do site.

Experimente este complemento cool FF para obter os links wget corretos

E também, especialmente se estamos falando de uma estação de trabalho conhecida e não casual, é claro que você pode instalar o cliente Dropbox. Esta será a maneira mais fácil, apenas deixe sua caixa fazer parte de sua estrutura de arquivos e elimine a necessidade de downloads complicados.
Veja esta askubuntu.com post , e o Dropbox .

    
por 06.09.2012 / 09:34
100

Basta adicionar ?dl=1 no final do link! Por exemplo: https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

Isso deve fornecer uma boa recuperação do arquivo em questão sem adicionar nada ao arquivo.

Mais uma coisa! Se você quiser salvar o arquivo em outro lugar, use a opção -O como esta

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

E se você quiser ter um pouco de GUI, você pode usar zenity para marcar a localização para onde o arquivo será baixado!

Veja um exemplo de código:

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

O Dropbox a modificou para que wget faça a coisa certa e recupere o arquivo em vez do intersticial.

Use o "Link de compartilhamento" para recuperar o link direto para o arquivo.

    
por 23.01.2013 / 21:47
1

Vi esta questão e pensei que isso pode ajudar alguém a tentar baixar muitos arquivos de uma só vez.

Aqui está um pequeno script Windows CMD / Batch que você pode usar.
Ele pode ser facilmente ajustado para funcionar em um shell Bash (Mac / Linux / etc).
Ele usa CURL . O WGET também deve funcionar com alguns pequenos ajustes.

1. Instale o Curl para Windows.

2. Coloque os links SHARED individuais em um arquivo de texto (1 por linha).

3. Ajuste todos os parâmetros "? Dl = 0" em seu arquivo de texto para "? Dl = 1" e salve.

4. Copie o script abaixo para um arquivo chamado 'geturllist.cmd' (ou sua escolha)

5. Abra um prompt do CMD e execute o script CMD.

Os arquivos baixados aparecerão no diretório de trabalho atual do qual você executou o script.

NOTA:
Você deve ter LINKS COMPARTILHADOS formatados corretamente que "Qualquer pessoa com o link" possa abrir. Este script NÃO funciona com links ou compartilhamentos protegidos por senha com base em um login / e-mail do Dropbox.
NOTA:
Se o único arquivo ou grupo de arquivos (zipado automaticamente) ultrapassar um determinado tamanho, ele falhará com o erro ("O arquivo (zip) é muito grande. Adicione-o ao seu Dropbox.") . Nesse caso, você deve fazer o que está escrito. Esse script não funcionará porque o link de compartilhamento não pode ser baixado diretamente.

Exemplo de arquivo de texto:
("RandomShareCharacters / Here" será substituído pelo que está escrito no link de compartilhamento)

 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.

Exemplo de uso:

geturllist.cmd X:\somepath\dropbox.txt

    
por 01.06.2016 / 17:40
0

Você vai conseguir algo chamado "arquivo" ou algum nome estranho ... Apenas renomear esse arquivo para o que você quiser fará o truque. Na verdade, o arquivo baixado é o arquivo que você queria apenas com um nome estranho e sem o atributo de tipo de arquivo.

    
por 16.06.2016 / 22:04
-2

O método mais fácil e garantido para esse tipo de download é usar as ferramentas de desenvolvedor do google chrome.

  • Pressione F12 para abrir as ferramentas do desenvolvedor
  • Ir para a guia de rede
  • Pressione o link de download para iniciar o download
  • Encontre o evento de download nos eventos de rede
  • Clique com o botão direito na linha e selecione "Copiar como cURL (bash)" ou windows se desejar

  • A URL ficará assim:

    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"
    
  • Substitua curl por wget

  • Substitua -H "some headers" por --header="some headers"
  • Cole na janela do bash e adicione o parâmetro -o . (Se você não adicionar este parâmetro, a saída será impressa no console.
  • Pressione Enter e aproveite seu download.
por 17.04.2016 / 12:18