wget이 다운로드 경로를 가져오지만 다운로드하지 않습니다.

wget이 다운로드 경로를 가져오지만 다운로드하지 않습니다.

다음과 같은 폴더 구조가 있습니다.

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입니다.

관련 정보