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

関連情報