StackExchange에 유사한 질문이 많이 있지만 그 중 어느 것도 이 문제를 해결하지 않습니다.
pdf
디렉토리 의 모든 파일을 다운로드하고 싶습니다2007
http://www3.cs.stonybrook.edu/~algorith/video-lectures/.
wget
그래서 위 링크에 제공된 html 파일을 구문 분석하고 해당 디렉토리 pdf
의 파일로 이동하는 링크 만 따라가고 싶습니다 2007
.
나는 성공하지 않고 다음을 사용했습니다.
wget -r -A pdf -I /2007 'http://www3.cs.stonybrook.edu/~algorith/video-lectures/'
위의 방법이 작동하지 않는 이유를 설명해 주실 수 있나요?
답변1
Anthon이 지적했듯이 이 -I
옵션은 작동하지 않습니다.그런 식으로. 그러나 이제 참조 지점, 즉 ~algorith/video-lectures/
파일 목록이 있으므로 몇 가지 옵션이 있습니다. 하나는 다른 도구를 사용하여 인덱스를 구문 분석하고 wget을 다시 실행하는 것입니다. 또 다른 하나는 사용하는 것입니다 --accept-regex
: 그것은 accept와 일치합니다전체 URL.
남성의 경우:
--accept-regex urlregex
--reject-regex urlregex
Specify a regular expression to accept or reject the complete URL.
이렇게 하면 원하는 작업이 수행됩니다.
wget -r -nd -A pdf --accept-regex "2007/.*\.pdf" 'http://www3.cs.stonybrook.edu/~algorith/video-lectures/'
-nd
정말로 이러한 디렉토리를 원한다면 삭제하십시오.
편집(댓글 처리를 위해)
정규식 수락 및 수락
설명하기가 조금 까다롭지만 시도해 보겠습니다.
먼저, 정말로 매뉴얼을 읽고 싶다면 를 사용하십시오 info
. man
(GNU wget에서) - (쉽게 간과됩니다):
SEE ALSO This is not the complete manual for GNU Wget. For more complete information, including more detailed explanations of some of the options, and a number of commands available for use with .wgetrc files and the -e option, see the GNU Info entry for wget.
이 경우:
$ info wget "Following Links" "Types of Files"
또는온라인.
여기서 우리는 강조점을 발견합니다:
마지막으로 수락/거부 목록이 일치한다는 점은 주목할 가치가 있습니다.두 배다운로드한 파일의 경우:한 번URL의 파일 이름 부분을 기반으로 파일을 먼저 다운로드해야 하는지 여부를 결정합니다.그 다음에, 승인 및 다운로드 성공 시 로컬 파일 이름을 승인/거부 목록과 비교하여 삭제 여부를 결정합니다.
또한 이에 대한 근거를 다음과 같이 설명합니다.
.htm
그리고.html
파일은언제나수락/거부 규칙에 관계없이 다운로드합니다.- 삭제해야 해뒤쪽에링크가 다운로드되고 검사됩니다(수락/거부 목록과 일치하는 경우).
따라서 HTML 파일은 항상 다운로드됩니다. 다운로드 후에는 파일명만을 기준으로 매칭이 이루어집니다.
이것이 얼마나 도움이 되는지 잘 모르겠습니다. 정보 페이지를 읽어보면 더 명확해질 수 있습니다. 여기서 닭고기와 달걀 같은 것들을 섞는 것은 약간 복잡합니다.
답변2
이 -I
옵션은 아래에 설명되어 있습니다 man wget
.
-I list
--include-directories=list
Specify a comma-separated list of directories you wish to follow
when downloading. Elements of list may contain wildcards.
(이해할 수 있듯이) 이것을 원본 페이지에 있는 URL에 대한 필터로 해석할 수 있지만 이는 희망사항입니다. 하위 디렉토리에 대한 필터로, 하위 wget
디렉토리로 내려가면 어느 하위 디렉토리를 찾을 수 있습니다 index.html
. 당신이 알아차린 바와 같이 index.html
,http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/