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

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

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

관련 정보