wget / curl을 사용하여 주어진 웹 페이지에서 .zip 파일에 대한 모든 링크를 다운로드하는 방법은 무엇입니까?


83

페이지에는 내가 다운로드하고 싶은 .zip 파일 세트에 대한 링크가 포함되어 있습니다. 나는 이것이 wget과 curl로 할 수 있다는 것을 안다. 어떻게 되나요?

답변:


126

명령은 다음과 같습니다.

wget -r -np -l 1 -A zip http://example.com/download/

옵션 의미 :

-r,  --recursive          specify recursive download.
-np, --no-parent          don't ascend to the parent directory.
-l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).
-A,  --accept=LIST        comma-separated list of accepted extensions.

16
-nd당신이 여분의 디렉토리 (즉, 모든 파일을 루트 폴더에있을 것입니다) 생성하지 않으려면 (없음 디렉토리) 플래그가 편리합니다.
Steve Davis

1
주어진 페이지에서 더 깊이 들어가도록이 솔루션을 어떻게 조정합니까? -l 20을 시도했지만 wget이 즉시 중지됩니다.
렌치

2
파일이 시작 URL과 동일한 디렉토리에 있지 않은 경우 -np. 다른 호스트에있는 경우 --span-host.
Dan

84

위의 솔루션은 나를 위해 작동하지 않습니다. 나를 위해 이것은 작동합니다.

wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off [url of website]

옵션 의미 :

-r            recursive
-l1           maximum recursion depth (1=use only this directory)
-H            span hosts (visit other hosts in the recursion)
-t1           Number of retries
-nd           Don't make new directories, put downloaded files in this one
-N            turn on timestamping
-A.mp3        download only mp3s
-erobots=off  execute "robots.off" as if it were a part of .wgetrc


네, 감사합니다! 나는 그것이 어디에서 왔는지 기억하지 못했고 내 대본에 그대로 두었습니다.
K.-Michael Aye

죄송합니다. 새로운 질문을하세요! ;)
K.-Michael Aye

1
-H스위치 는 +1입니다 . 이것이 첫 번째 답변 (SO를 찾기 전에 시도한 것)이 작동하지 못하게하는 것입니다.
Alex

"긴 옵션에 대한 필수 인수는 짧은 옵션에도 필수입니다."라는 오류가 표시됩니다. :(
François Leblanc

6

병렬 마법이있는 다른 시나리오에서는 다음을 사용합니다.

curl [url] | grep -i [filending] | sed -n 's/.*href="\([^"]*\).*/\1/p' |  parallel -N5 wget -
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.