リストからファイルをダウンロードする


130

wgetまたはその他の自動方法を使用して(テキストファイルにリストされている)ファイルをダウンロードするにはどうすればよいですか?

サンプルファイルリスト:

www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf

回答:


227

wgetにはこのための組み込みフラグwget -i your_list があります。man wget


@aureianimusリンク2をスキップしたい場合はどうすればいいですか?
alhelal

このソリューションは私のために働いた。並行ではなく、順次ダウンロードすることに満足しました。
asiby

85

並行して取得します

cat urlfile | parallel --gnu "wget {}"

デフォルトでは、コアと同じ数のプロセスを実行します。並列処理の後に「-j 20」を追加することで、本当にすぐにプルダウンしたい場合は、おそらくこれをさらに10倍に増やすことができます。


1
私はただそれを機能させることができません。私はprocがwgetのためにエコー切り替え、生成された出力は何もしません表示されていない
ヤクブBochenskiを

いくつかの以前のubuntusは、この空間にダムの欠陥を持っている:stackoverflow.com/questions/16448887/...
meawoppl

2
「コアと同じ数のプロセスを実行します」ということに注意してください。ネットワーク帯域幅が制限要因になる可能性があります。
ウィルフ14年

2
それは本当に依存しています。転送時間の大部分はハンドシェイク/ TCPラウンドトリップであるため、多数の小さなファイルの場合、これはほぼ1桁高速になります。また、多数の小さなホストからダウンロードしている状況では、接続ごとの帯域幅が制限される場合があるため、状況が悪化します。
meawoppl 14年

2
これは、異なるホスト名で相対URL(ホスト名なしのリソースID)のリストを使用する場合に非常に便利です。例:cat urlfile | parallel --gnu "wget example1.com {}"およびcat urlfile | パラレル--gnu "wget example2.com {}"
マウリシオサンチェス


9

parallel入力ファイルをソースとして使用する組み込みフラグ--arg-file-a)があるため、を回避できますcat |。使用できます

parallel --gnu -a urlfile wget

または単に parallel --gnu wget < urlfile


5
awk '{print "http://" $0;}' list.txt | xargs -l1 wget

list.txtはリストファイルです


4

Florian Dieschの答えを見ました。

bqcコマンドにパラメーターを含めることで機能するようになりました。

xargs -i wget -bqc 'http://{}' < download.txt

すべてのダウンロードはバックグラウンドで並行して開始されました。

  • -b: バックグラウンド。開始後すぐにバックグラウンドに移動する
  • -q:静か。wgetの出力をオフにする
  • -c: 持続する。部分的にダウンロードされたファイルの取得を続けます

1

リンクファイルlinks.txt

すべてのリンクファイルをダウンロードするためのコマンド

cat links.txt | wget -i

3
これは動作しません。wget -i links.txt正しいコマンドです。
ヘリー

いいえ、これは正しいコマンドではありません。正しいコマンドは次のとおりです: "cat links.txt | wget -i"
DreamCoder

0

私はこれをテストしました:

xargs -a download_file -L1 wget

わたしにはできる。txtファイル内のリンクは、別々の行にする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.