一括ダウンロード写真ノード

down.js

/ ** 
 *クローラーノード
 * / 
VARのFS =( 'FS')が必要です。
VAR =( "要求")を要求する要求; 
VAR =チェリオ( "チェリオ")を必要とします。
VAR =非同期( '非同期')を必要とします。

//ローカルストレージディレクトリ
VAR DIR =」./images'; 

//同時
。VAR = asyncNum 5; 

//フォト
機能downloadImg(写真、DIR、asyncNum){ 
  はconsole.log(「今後の同時非同期ダウンロード写真、同時の現在の数:「+ asyncNum); 
  async.mapLimit(写真、asyncNum、関数(写真、コールバック){ 
    VAR photo.substrファイル名=(-5 ,. 5); 
    IF(ファイル名){ 
      にconsole.log(+写真'ダウンロード') ; 
      //デフォルト
      // fs.createWriteStream(DIR + "/" +ファイル名)
      //パイプ・エラーを防ぎます 
      要求を(写真)
        .on( 'エラー'、関数(ERR){ 
          にconsole.log(ERR); 
        })
        .pipe(fs.createWriteStream(DIR + "/" +名)); 
      console.log( '下载完成'); 
      コールバック(ヌル、ファイル名); 
    } 
  }、関数(ERR、結果){ 
    IF(ERR){ 
      にconsole.log(ERR)。
    } {他に
      はconsole.log( "大丈夫!"); 
      console.log(結果)。
    } 
  })
} 

VAR originUrl =「http://mhpic.mh51.com/comic/Y/%E9%A9%AD%E7%81%B5%E5%B8%88/3-6%E8%AF%9D /1.jpg '; 
= 10 VaRの合計。
VAR写真= []; 

ため(VAR I 1 =; I <=和; I ++){ 
  VAR URL = originUrl.substring(0、originUrl。
  photos.push(URL + I + '.JPG'); 
} 

photos.forEach((URL、IDX)=> { 
  LETファイル名= url.split( '/')POP();. //画像は、元のネットワークを有しています地元の絵にちなんで名付けられた
  //リクエスト(URL {})。パイプ(
  // fs.createWriteStream(./images `/` $ {ファイル名}).on( '閉じる'、ERR => {はconsole.log(「書き込み失敗した'ERR)})
  //)

  request.GET({URI:URL、エンコード:'バイナリを「}、機能(ERR、RES){ 
    IF(ERR){!
      fs.writeFile( `./images / $ { } `ファイル名、res.body、 "バイナリ"、機能(ERR、RES){ 
        IF(ERR!){ 
          // 
        } {他
          にconsole.log(ERR); 
        } 
      })
    } 
  })
})

// downloadImg(写真、DIR、asyncNum)

おすすめ

転載: www.cnblogs.com/crazycode2/p/12521607.html