次のフォルダ構造があります。
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
。これには多くのフィールドがあり、2番目のエントリは拒否されたURLです。