Request.pipe()未处理的错误异常



我正在尝试抓取我公司的网站,我想下载所有现有的图像到一个文件。我使用request.pipe()来做到这一点,但它给出了未处理的错误异常,这是我的代码。有什么问题吗?

$('a').each(function (index, a) {
            var toQueueUrl = $(a).attr('href');
            if(toQueueUrl.indexOf('.jpg') != -1){
                jpgUrlArr.push(toQueueUrl.toString());
            }
            c.queue(toQueueUrl);
        });
        for(var i=0 ; i<jpgUrlArr.length; i++){
            request(jpgUrlArr[i]).pipe(fs.createReadStream(imageStorageFolder + i + '.jpg'));
        }

这里有两种情况:

  1. 当您尝试下载图像时未处理的异常。你需要在错误事件
  2. 上实现readStream
代码:

var readStream = request(jpgUrlArr[i])
readStream.on('error', function(err){
    console.log(err)
})
readStream.pipe(fs.createReadStream(imageStorageFolder + i + '.jpg'))
  • 你不能同时下载大量图片。有时会出现套接字错误。所以尽量限制异步图像加载。例如- async nodejs模块
  • 代码:

    var async = require('async')
    var elements = $('a')
    async.eachLimit(elements, 4, function(element){
        // Downloading logic here
    })
    

    相关内容

    最新更新