온라인 파일 / 폴더 목록에 나타나는 모든 파일 및 하위 디렉토리와 함께 HTTP 디렉토리를 다운로드하는 방법은 무엇입니까?


189

액세스 할 수있는 온라인 HTTP 디렉토리가 있습니다. 를 통해 모든 하위 디렉토리와 파일을 다운로드하려고했습니다 wget. 그러나 문제는 wget하위 index.html디렉토리를 다운로드 할 때 파일 자체를 다운로드하지 않고 해당 디렉토리의 파일 목록이 포함 된 파일을 다운로드한다는 것입니다.

깊이 제한없이 하위 디렉토리와 파일을 다운로드하는 방법이 있습니까 (다운로드하려는 디렉토리가 컴퓨터로 복사하려는 폴더 인 것처럼).

온라인 HTTP 디렉토리

답변:


357

해결책:

wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

설명:

  • ddd 디렉토리의 모든 파일과 하위 폴더를 다운로드합니다.
  • -r : 재귀 적으로
  • -np: ccc /… 와 같은 상위 디렉토리로 이동하지 않음
  • -nH : 파일을 호스트 이름 폴더에 저장하지 않음
  • --cut-dirs=3: 그러나 처음 3 개의 폴더 aaa , bbb , ccc 를 생략 하여 ddd 에 저장
  • -R index.html: index.html 파일 제외

참조 : http://bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/


17
감사합니다! 또한, 참고에 따르면 당신이 사용할 수있는 -R것처럼 -R css모든 CSS 파일을 제외하거나 사용하는 -A같은 -A pdf에만 다운로드 PDF 파일에.
John

7
감사! wget 매뉴얼 페이지 에서 가져온 추가 조언When downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
jgrump2012

3
이 오류 'wget'이 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
1

1
@hamish wget을 먼저 설치해야하거나 wget이 $ PATH에 없습니다.
Mingjiang Shi

16
좋은 대답이지만 robots.txt디렉토리에 파일 다운로드를 허용하지 않는 파일 이 있으면 작동하지 않습니다. 이 경우을 추가해야합니다 -e robots=off . 참조 unix.stackexchange.com/a/252564/10312
다니엘 Hershcovich에게

45

VisualWGet을 사용 하는이 게시물 덕분 에이 작업을 수행 할 수있었습니다 . 그것은 나를 위해 잘 작동했습니다. 중요한 부분은 깃발 을 확인하는 것 같습니다 (이미지 참조).-recursive

또한 -no-parent플래그가 중요 하다는 것을 알았 으므로 모든 것을 다운로드하려고 시도합니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


2
방금 이것을 발견했습니다-2017 년 12 월. 잘 작동합니다. sourceforge.net/projects/visualwget
SDsolar

2
Windows 컴퓨터에서 잘 작동했습니다. 답에 언급 된 옵션을 확인하는 것을 잊지 마십시오. 그렇지 않으면 작동하지 않습니다
csharpcoder

특정 https에서는 작동하지 않습니다. @DaveLucre cmd 솔루션에서 wget으로 시도하면 다운로드 할 수도 있지만 일부 서버는 그것을 허용하지 않습니다.
Yannis Dran

검사 --no-parent는 무엇을합니까?
T.Todua

1
2020 년 3 월 근무!
Mr Programmer

7
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

에서 man wget

'-r' '--recursive' 재귀 검색을 켭니다. 자세한 내용은 재귀 다운로드를 참조하십시오. 기본 최대 깊이는 5입니다.

'-np' '--no-parent' 재귀 적으로 검색 할 때 상위 디렉토리로 올라가지 마십시오. 특정 계층 아래에있는 파일 만 다운로드 할 수 있으므로 유용한 옵션입니다. 자세한 내용은 디렉토리 기반 제한을 참조하십시오.

'-nH' '--no-host-directories' 호스트 접두어 디렉토리 생성을 비활성화합니다. 기본적으로 '-r http://fly.srk.fer.hr/ '로 Wget을 호출 하면 fly.srk.fer.hr/로 시작하는 디렉토리 구조가 작성됩니다. 이 옵션은 이러한 동작을 비활성화합니다.

'--cut-dirs = number' 숫자 디렉토리 구성 요소를 무시하십시오. 재귀 검색을 저장할 디렉토리를 세밀하게 제어 할 때 유용합니다.

예를 들어 ' ftp://ftp.xemacs.org/pub/xemacs/ ' 의 디렉토리를 사용하십시오 . '-r'로 검색하면 ftp.xemacs.org/pub/xemacs/에 로컬로 저장됩니다. '-nH'옵션이 ftp.xemacs.org/ 부분을 제거 할 수는 있지만 여전히 pub / xemacs가 붙어 있습니다. 이것은 '--cut-dirs'가 유용한 곳입니다. Wget이 원격 디렉토리 구성 요소를 "보지"못하게합니다. 다음은 '--cut-dirs'옵션의 작동 방식에 대한 몇 가지 예입니다.

옵션이 없습니다-> ftp.xemacs.org/pub/xemacs/ -nH-> pub / xemacs / -nH --cut-dirs = 1-> xemacs / -nH --cut-dirs = 2->.

--cut-dirs = 1-> ftp.xemacs.org/xemacs/ ... 디렉토리 구조를 제거하려면이 옵션은 '-nd'와 '-P'의 조합과 유사합니다. 그러나 '-nd'와 달리 '--cut-dirs'는 하위 디렉토리에서 손실되지 않습니다 (예 : '-nH --cut-dirs = 1'). 베타 / 서브 디렉토리는 다음과 같이 xemacs / beta에 배치됩니다. 하나는 기대할 것입니다.


3
일부 설명은 좋을 것입니다.
Benoît Latinier

VisualWget을 사용하여 특정 파일 형식 을 다운로드하는 것은 어떻 습니까? VisualWget 의 디렉토리 및 하위 디렉토리에 mp3 파일 만 다운로드 할 수 있습니까?
Jason

3

wget소중한 자원이자 내가 사용하는 것입니다. 그러나 때로는 주소에 wget구문 오류로 식별되는 문자가 있습니다. 나는 그에 대한 해결책이 있다고 확신하지만,이 질문에 대해 구체적으로 묻지 않았기 때문에 wget의심 할 여지 없이이 페이지를 우연히 발견하여 학습 곡선이 필요없는 빠른 해결책을 찾는 사람들을위한 대안을 제시 할 것이라고 생각했습니다.

이를 수행 할 수있는 몇 가지 브라우저 확장 프로그램이 있지만 항상 무료 인 것은 아니며 눈에 띄지 않으며 많은 리소스를 사용하는 다운로드 관리자를 설치해야합니다. 다음은 이러한 단점이없는 것입니다.

"다운로드 마스터"는 디렉토리에서 다운로드하기에 적합한 Chrome 용 확장 프로그램입니다. 다운로드 할 파일 형식을 필터링하거나 전체 디렉토리를 다운로드하도록 선택할 수 있습니다.

https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce

최신 기능 목록 및 기타 정보를 보려면 개발자 블로그의 프로젝트 페이지를 방문하십시오.

http://monadownloadmaster.blogspot.com/


3

--use-pget-n=10명령에 추가 할 수있는 더 큰 파일이 있으면 다운로드의 강력한 군용 칼인 lftp를 사용할 수 있습니다

lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'

완벽하고 정말 빠르게 작동하여 수천 개의 작은 파일을 다운로드하는 인터넷 회선을 최대한 활용했습니다. 아주 좋아요
n13

완벽하게 작동합니다 !! 최선의 선택!
ambigus9


2

소프트웨어 나 플러그인이 필요하지 않습니다!

(재귀 부서가 필요하지 않은 경우에만 사용 가능)

북마크를 사용하십시오. 이 링크 를 책갈피로 드래그 한 다음이 코드를 편집하여 붙여 넣으십시오.

(function(){ var arr=[], l=document.links; var ext=prompt("select extension for download (all links containing that, will be downloaded.", ".mp3"); for(var i=0; i<l.length; i++) { if(l[i].href.indexOf(ext) !== false){ l[i].setAttribute("download",l[i].text); l[i].click(); } } })();

파일을 다운로드하려는 페이지로 이동하여 해당 북마크를 클릭하십시오.


-1

wget은 일반적으로 이런 방식으로 작동하지만 일부 사이트에는 문제가있어 불필요한 html 파일이 너무 많이 생성 될 수 있습니다. 이 작업을 쉽게하고 불필요한 파일 생성을 방지하기 위해 필자가 직접 작성한 첫 번째 Linux 스크립트 인 getwebfolder 스크립트를 공유하고 있습니다. 이 스크립트는 매개 변수로 입력 한 웹 폴더의 모든 내용을 다운로드합니다.

하나 이상의 파일이 포함 된 wget으로 열린 웹 폴더를 다운로드하려고하면 wget은 index.html이라는 파일을 다운로드합니다. 이 파일에는 웹 폴더의 파일 목록이 포함되어 있습니다. 내 스크립트는 index.html 파일로 작성된 파일 이름을 웹 주소로 변환하고 wget으로 명확하게 다운로드합니다.

Ubuntu 18.04 및 Kali Linux에서 테스트되었으며 다른 배포판에서도 작동 할 수 있습니다.

사용법 :

  • 아래에 제공된 zip 파일에서 getwebfolder 파일을 추출하십시오.

  • chmod +x getwebfolder (처음 만)

  • ./getwebfolder webfolder_URL

와 같은 ./getwebfolder http://example.com/example_folder/

다운로드 링크

블로그 세부 사항

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.