덮어쓰지 않도록 웹페이지 목록을 파일로 다운로드하고 이름을 바꾸시겠습니까?

덮어쓰지 않도록 웹페이지 목록을 파일로 다운로드하고 이름을 바꾸시겠습니까?
$ wget -r -np  -nH --cut-dirs=2 -p -k "http://www.example.com/1" -O test.html
Cannot specify both -k and -O if multiple URLs are given, or in combination
with -p or -r. See the manual for details.

Usage: wget [OPTION]... [URL]...

이 문제를 해결하는 방법을 알고 싶습니다.

실제 문제에서는 목록 URL을 다음과 같은 텍스트 파일에 저장합니다.

http://www.example.com/1
http://www.example.com/2
http://www.example.com/3

웹페이지를 대체하는 데 필요한 파일과 함께 각 웹페이지를 다운로드하고 싶습니다.

기본적으로 다운로드한 각 파일에는 index.html이전에 다운로드한 웹 페이지를 덮어쓰도록 이름이 지정됩니다. 그래서 다운로드한 파일의 이름을 다운로드 순서를 나타내는 숫자로 바꾸려고 했습니다.

i=0
for url in $(cat ../htmls); 
do  
wget -r -np  -nH --cut-dirs=1 -p -k "$url" -O $(printf %04d $i).html; 
i=$((i+1))
done

이때 초기 오류가 발생했습니다.

답변1

index.html웹 페이지의 다양한 링크가 이 파일에 의존하기 때문에 이 파일이 필요합니다 . 각 웹페이지를 자체 디렉토리에 저장하겠습니다.

while read url; do
    mkdir "$url";
    cd "$url"
    wget -r -np  -nH --cut-dirs=1 -p -k "$url"
    cd ../
done

wget이는 이미 기본적으로 수행되어 있으므로 다음을 사용하십시오 .스티븐의 방법대신에.

답변2

wgetwith의 기본 동작은 -r다운로드한 파일을 URL과 일치하는 디렉터리에 저장하는 것이므로 다음과 같이 할 수 있습니다.

wget -r -np -p -i myurls

( myurls다운로드할 URL이 포함된 파일은 어디에 있습니까?)

결과로 생성된 대용량 디렉토리는 가장 만족스럽지 않을 수 있지만 다운로드한 파일을 표시하는 데 필요한 모든 것을 갖추고 덮어쓰는 일이 없도록 보장합니다...

관련 정보