wget이 Apache 디렉토리 목록을 다른 순서로 로드하지 못하도록 하려면 어떻게 해야 합니까?

wget이 Apache 디렉토리 목록을 다른 순서로 로드하지 못하도록 하려면 어떻게 해야 합니까?

다음 명령을 사용하여 디렉터리를 재귀적으로 다운로드하려고 합니다.

wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…

스크립트는 15분마다 실행되므로 요청을 최대한 줄이고 싶습니다. ?C=M;O=A다음과 같은 디렉터리 순서 수정자 버튼에서 발생하는 요청이 많이 있는 것을 확인했습니다 .이름,날짜또는크기(). 이러한 요청이 발생하지 않도록 하려면 어떻게 해야 합니까?

답변1

에서 지적한 바와 같이답변관련된 질문에,wget의 문서말한다:

또한 쿼리 문자열(물음표('?')로 시작하는 URL 끝에 있는 문자열은 허용/거부 규칙에 대한 파일 이름의 일부로 포함되지 않습니다. Wget의 향후 버전에서는 쿼리 문자열과의 일치를 허용하는 옵션을 제공할 것으로 예상됩니다.

아마도 다음과 같은 다른 도구를 사용해야 할 것입니다.파부크또는httrack. 이 두 프로그램은 wget보다 더 강력한 이름 필터링을 제공합니다.

대안으로, wget을 사용하여 디렉토리를 다운로드하고 나중에 필터링할 수 있습니다.

find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete

답변2

*.pdf 파일의 디렉토리를 미러링하려는 경우 httrack을 사용하겠습니다. 다음과 같은 명령이 나에게 효과적이었습니다.

 % httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update

다음 URL에서 httrack에 대한 자세한 내용을 확인할 수 있습니다.

wget보다 httrack을 사용할 때의 주요 이점 중 하나는 httrack이 변경/업데이트된 파일만 다운로드한다는 것입니다.

관련 정보