wget 명령을 사용하여 보관 용 파일을 다운로드하는 방법은 무엇입니까?


72

크롬 및 파이어 폭스와 같은 탐색기를 사용하여 드롭 박스 파일 만 다운로드 할 수 있습니다. 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하려면 다운로드 버튼을 오른쪽으로 누를 때 표시되는 메뉴에서 직접 다운로드 링크를 복사해야합니다.

내 경우에는 잘 작동했습니다. 그러나 때때로 브라우저 외부에서 링크를 다운로드 할 때 발생하는 문제는 링크 자체 이외의 매개 변수와 관련이 있습니다. 단순히 링크를 복사 할 때 존재하지 않는 일반적인 요소는 사이트 쿠키입니다.

멋진 FF 애드온 을 사용하여 올바른 wget링크 를 얻으십시오

또한 특히 일반적인 워크 스테이션이 아닌 알려진 워크 스테이션에 대해 이야기하는 경우 Dropbox 클라이언트를 설치할 수 있습니다. 이것이 가장 쉬운 방법입니다. 상자를 파일 구조의 일부로 만들고 복잡한 다운로드의 필요성을 없애십시오.
askubuntu.com postDropbox 다운로드 페이지를 참조하십시오.


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
이 부가 기능은 공유 드롭 박스 링크로 도움이되었으며, 다운로드하려면 비밀번호가 필요합니다. "다운로드"버튼을 마우스 오른쪽 버튼으로 클릭하고 cliget을 선택하면 작은 파일 인? 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 파일 (미스 이름)을 받았습니다. 대박! 고마워요 !!
Rafareino

1
허용되는 것보다 훨씬 더 나은 답변입니다. 이것은 많은 도움이되었습니다.
Seiyria

3
이 방법이 여전히 작동합니까? wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'나는 명령 을 계속 사용하고 ERROR 400: Bad Request있습니다.
Paul Rougieux

지금은 얻을 500 Internal Server Error, 드롭 박스 진짜 쓰레기입니다.
Avio

15

Dropbox는 wget올바른 작업을 수행하고 전면 광고 대신 파일을 검색 하도록 수정했습니다 .

"공유 링크"를 사용하여 파일에 대한 직접 링크를 검색하십시오.


이것은 정답이어야합니다. 공유 링크는 사소한 것입니다.
davidparks21

좋은! wget: No match작은 따옴표로 묶인 링크를 사용하여 해결 된 결과를 얻었습니다 ( ?url 로 인해 ?)
Matifou

3

이 질문을보고 이것이 많은 파일을 한 번에 다운로드하려는 사람에게 도움이 될 수 있다고 생각했습니다.

사용할 수있는 작은 Windows CMD / 배치 스크립트는 다음과 같습니다.
Bash 쉘 (Mac / Linux / etc)에서 작동하도록 쉽게 조정할 수 있습니다. CURL을
사용합니다 . WGET은 약간의 조정도 가능합니다.

1. Windows 용 Curl 을 설치 하십시오.

2. 개별 SHARED 링크를 텍스트 파일에 넣습니다 (한 줄에 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
사람들이 왜이 답변을 하향 조정했는지, 믿을 수없는 이유는 믿을 수 없습니다.
Josyula Krishna

0

"file"또는 이상한 이름이 있습니다. 원하는 이름으로 파일 이름을 바꾸면 트릭이 발생합니다. 실제로 다운로드 된 파일은 이상한 이름과 파일 유형 속성이없는 원하는 파일입니다.


-2

이러한 유형의 다운로드에 가장 쉽고 보장되는 방법은 Google 크롬의 개발자 도구를 사용하는 것입니다.

  • 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
Hüseyin Yağlı에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.