request
インスピレーションギャラリーをスクレイピングし、node.js用のMikealのライブラリを使用して画像をディスクにダウンロードしています。問題は、多くの画像が、ほとんどの場合ダウンロードセッションの開始時に、部分的または全部ではなくダウンロードされることです。これは下の画像に示されています(フォルダはでソートされていますDate Modified
)。最初の17枚の画像の後、行3、列4からわかるように、残りの画像は正常にダウンロードされます。
これが私が使用しているnode.js/requestコードの関連するセグメントです:
// images is an array of URLs to .jpg images
for( var i = 0, len = images.length ; i < len ; i++ ) {
request.get( images[i] ).pipe( fs.createWriteStream(destinationFilename) )
}
配列に格納されているURLから画像データをフェッチし、それをディスクに書き込むにパイプするために使用request
しています。ほとんどの場合、これは正常に機能しますが、ダウンロードの1〜15%が部分的なダウンロードになります。images
stream
オブジェクトのdrain
イベントを使用してを取得して比較しようとしましたが、そのアプローチではどこにも到達しませんでした。これを解決する他のアプローチはありますか?stream
bytesWritten
bytesTotal