다음과 같은 폴더 구조가 있습니다.
example.com
|
|_ folder1
| |_ file1.mp4
|
|_ folder2
| |_ file2.mp4
|
|_ folder3
| |_ file3.mp4
|
|_ folder4
|_ file4.mp4
모든 mp4 파일을 다운로드하고 싶습니다. 다음과 같이 할 수 있습니다.
wget --no-parent -A mp4 example.com/
그러나 파일이 커서 내 컴퓨터에 모두 맞지 않습니다. 그래서 path
각 콘텐츠를 구해 mp4
공간이 더 생기면 다운로드하고 싶습니다 .
다음 URL을 얻으려면 어떻게 해야 하며, URL이 인코딩되었는지 여부에 관계없이 파일로 출력할 수 있습니다.
example.com/folder1/file1.mp4
example.com/folder2/file2.mp4
...
답변1
wget을 사용하여 주소 목록을 만들 수 있습니다.
# parse listing index.html
$ wget -O- http://download.savannah.gnu.org/releases/lzip/ | grep -oE '["].*\.lz["]' | sed -e 's/^.*href=//' -e 's/\"//g' > urls.txt
# download files from list
$ wget -i urls.txt
더 많은 것이 있으면 배열에 넣은 다음
addresses=(\
"http://aaaaa" \
"http://bbbb" \
"http://ccc" \
)
for adr in ${addresses[@]}; do
wget -O- ...
done
이 모든 것을 결합할 수도 있습니다. 첫 번째 단계에서 목록 목록(index.html-s)을 만든 다음 두 번째 단계에서 .mp4-s 목록을 만든 다음 .mp4-s를 사용하여 해당 목록에서 다운로드할 수 있습니다. wget -i <urls>
.
답변2
나중에 해당 mp4를 다운로드하는 데 사용할 수 있는 파일에 거부 내용을 기록하는 동안 mp4 파일을 거부할 수 있습니다.
위 명령을 기반으로 합니다( 추가해야 할 수도 있음 -r
).
wget --no-parent --rejected-log=file.rej -R mp4 example.com/
거부 내용은 에 있습니다 file.rej
. 여기에는 많은 필드가 있으며 두 번째 항목은 거부된 URL입니다.