디렉토리 자체에 index.html이 없을 때 wget을 사용하여 디렉토리에서 특정 파일을 다운로드하려면 어떻게 해야 합니까?

디렉토리 자체에 index.html이 없을 때 wget을 사용하여 디렉토리에서 특정 파일을 다운로드하려면 어떻게 해야 합니까?

StackExchange에 유사한 질문이 많이 있지만 그 중 어느 것도 이 문제를 해결하지 않습니다.

pdf디렉토리 의 모든 파일을 다운로드하고 싶습니다2007http://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의 파일 이름 부분을 기반으로 파일을 먼저 다운로드해야 하는지 여부를 결정합니다.그 다음에, 승인 및 다운로드 성공 시 로컬 파일 이름을 승인/거부 목록과 비교하여 삭제 여부를 결정합니다.

또한 이에 대한 근거를 다음과 같이 설명합니다.

  1. .htm그리고 .html파일은언제나수락/거부 규칙에 관계없이 다운로드합니다.
  2. 삭제해야 해뒤쪽에링크가 다운로드되고 검사됩니다(수락/거부 목록과 일치하는 경우).

따라서 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/

관련 정보