답변:
해결책:
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/
설명:
-r
: 재귀 적으로 -np
: ccc /… 와 같은 상위 디렉토리로 이동하지 않음-nH
: 파일을 호스트 이름 폴더에 저장하지 않음 --cut-dirs=3
: 그러나 처음 3 개의 폴더 aaa , bbb , ccc 를 생략 하여 ddd 에 저장-R index.html
: index.html
파일 제외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.
robots.txt
디렉토리에 파일 다운로드를 허용하지 않는 파일 이 있으면 작동하지 않습니다. 이 경우을 추가해야합니다 -e robots=off
. 참조 unix.stackexchange.com/a/252564/10312
VisualWGet을 사용 하는이 게시물 덕분 에이 작업을 수행 할 수있었습니다 . 그것은 나를 위해 잘 작동했습니다. 중요한 부분은 깃발 을 확인하는 것 같습니다 (이미지 참조).-recursive
또한 -no-parent
플래그가 중요 하다는 것을 알았 으므로 모든 것을 다운로드하려고 시도합니다.
--no-parent
는 무엇을합니까?
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에 배치됩니다. 하나는 기대할 것입니다.
wget
소중한 자원이자 내가 사용하는 것입니다. 그러나 때로는 주소에 wget
구문 오류로 식별되는 문자가 있습니다. 나는 그에 대한 해결책이 있다고 확신하지만,이 질문에 대해 구체적으로 묻지 않았기 때문에 wget
의심 할 여지 없이이 페이지를 우연히 발견하여 학습 곡선이 필요없는 빠른 해결책을 찾는 사람들을위한 대안을 제시 할 것이라고 생각했습니다.
이를 수행 할 수있는 몇 가지 브라우저 확장 프로그램이 있지만 항상 무료 인 것은 아니며 눈에 띄지 않으며 많은 리소스를 사용하는 다운로드 관리자를 설치해야합니다. 다음은 이러한 단점이없는 것입니다.
"다운로드 마스터"는 디렉토리에서 다운로드하기에 적합한 Chrome 용 확장 프로그램입니다. 다운로드 할 파일 형식을 필터링하거나 전체 디렉토리를 다운로드하도록 선택할 수 있습니다.
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce
최신 기능 목록 및 기타 정보를 보려면 개발자 블로그의 프로젝트 페이지를 방문하십시오.
이 Firefox 애드온을 사용 하여 HTTP 디렉토리의 모든 파일을 다운로드 할 수 있습니다 .
https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/
(재귀 부서가 필요하지 않은 경우에만 사용 가능)
북마크를 사용하십시오. 이 링크 를 책갈피로 드래그 한 다음이 코드를 편집하여 붙여 넣으십시오.
(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(); } } })();
파일을 다운로드하려는 페이지로 이동하여 해당 북마크를 클릭하십시오.
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/
-R
것처럼-R css
모든 CSS 파일을 제외하거나 사용하는-A
같은-A pdf
에만 다운로드 PDF 파일에.