パラレルwgetはありますか? fpingに似ていますが、ダウンロード専用ですか?

パラレルwgetはありますか? fpingに似ていますが、ダウンロード専用ですか?

puf(パラレルURLゲッター)のみが見つかりましたが、次のファイルからURLを読み取ることはできません。

 puf < urls.txt

いいえ。

サーバーにインストールされているオペレーティングシステムはUbuntuです。

答え1

使用GNUパラレル

$パラレル-j${日}wget <urls.txt

またはxargsGNU検索ツール

$xargs -n 1 -P${日}wget <urls.txt

${jobs}許可したい最大同時実行数はどこにあります(回線ごとに1回の呼び出しを受信するように設定)。 / がないと、一度に 1 つずつ CPU コアほど多くのジョブが実行されます (ネットワーク IO 制約を考慮すると必ずしも意味があるわけではありません)。wget-n1wgeturls.txt-j-Pparallelwgetxargs

parallel同時に実行されるジョブの出力を切り離すのが良い機能ですがxargs、気にしなければxargsあらかじめインストールされている可能性が高いです。

答え2

答え3

Pythonとpycurlライブラリを使用してこれを行うことができます。 pycurlライブラリには、独自の偶数ループを実装して複数の同時接続を可能にする「マルチ」インタフェースがあります。

しかし、インターフェイスはCに似ているため、他の「Python」コードと比較して少し面倒です。

私はそれのためのラッパーを書いて、その上でより完全なブラウザに似たクライアントを構築しました。これを例として使用できます。よりパイコピア.WWW.クライアント基準寸法。 HTTPConnectionManager は複数のインタフェースをラップします。

答え4

GNU並列マニュアルページの一部には、並列再帰wgetの例が含まれています。

https://www.gnu.org/software/parallel/man.html#example-breadth-first-parallel-web-crawler-mirrorer

HTMLは2回ダウンロードされます。一度はリンクを抽出し、一度はディスクにダウンロードします。他のコンテンツは一度だけダウンロードされます。

再帰が必要でない場合、ephemientの答えは明らかに見えます。

関連情報