Wget이 디렉토리의 색인 파일을 생성하지 않습니다.

Wget이 디렉토리의 색인 파일을 생성하지 않습니다.

다음 명령을 사용하여 사이트를 다운로드하려고 합니다.

wget -r -l 0 -p -k -m -e robots=off --restrict-file-names=nocontrol,unix http://example.com

예를 들어 링크를 찾으면 http://example.com/direction디스크에 파일이 생성됩니다../example.com/direction

그런 다음 예를 들어 '방향'에서 다른 파일(링크)을 찾습니다.http://example.com/direction/11

그리고 일부 HTML로 wget이전 파일을 다시 작성 ./example.com/direction하고 이를 디렉터리로 변환합니다. 그리고 ./example.com/direction/11거기에 새 파일을 작성하십시오.

내부에서 새 파일을 찾으면 /direction/11다시 작성하여 11디렉터리로 변환합니다.

그래서 디렉토리 색인 파일을 모두 잃어버린 것 같습니다.

wget 자체에 문제에 대한 해결책이 있습니까?

답변1

모든 경우에 작동하지 않을 수도 있지만 다소 예상치 못한 태그를 사용하여 이 문제를 해결할 수 있었습니다.

wget 1.17.1 매뉴얼에서:

‘-E’

‘--adjust-extension’

‘application/xhtml+xml’또는 유형의 파일을 ‘text/html’다운로드하고 URL이 regexp로 끝나지 않는 경우 이 옵션을 사용하면 로컬 파일 이름에 ‘\.[Hh][Tt][Mm][Ll]?’접미사가 추가됩니다 .‘.html’

따라서 귀하의 경우 wget이 링크를 찾으면 http://example.com/direction페이지가 html 형식인지 확인합니다. 그렇다면 로컬 디스크에 /example.com/direction.html. 그런 다음 을 발견하면 http://example.com/direction/11디스크에 로 저장하므로 /example.com/direction/11첫 번째 파일을 덮어쓰지 않습니다. 실제 디렉토리 구조가 이라고 가정하면 /example.com/direction/index.html원격 디렉토리 구조와 정확히 일치하지는 않지만 적어도 파일을 잘못 덮어쓰지는 않습니다.

답변2

글쎄, Wget만을 사용하여 이 문제를 해결하는 것은 거의 불가능합니다. 먼저 문제를 설명해 드리겠습니다.

첫 번째 Wget은 http://site.com/direction. Wget이 이 경로에 대한 요청을 보내면 서버는 http://site/com/example/index.html. 그러나 이 시점에서 Wget은 전송되는 데이터가 example/index.html 경로에 해당하는지 인식하지 못합니다. 이제 Wget이 다른 파일을 찾으면 http://site.com/example/11동일한 일이 다시 발생합니다. 그러나 먼저 example/ 디렉토리를 생성해야 하며 이를 위해 기존 파일을 무조건 삭제합니다. IMO, Wget은 파일을 디렉터리로 바꾸는지 감지하고 파일을 인덱스 파일로 저장해야 합니다. 하지만, 지금은 그렇지 않습니다.

관련 정보