Request.pipe() 未处理的错误异常 Nodejs
Request.pipe() unhandled Error exception Nodejs
我正在尝试抓取我公司的网站,我想将所有现有图像下载到一个文件中。我正在使用 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'));
}
这里有两个案例:
- 尝试下载图像时出现未处理的异常。您需要在错误事件
上实现 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
})
我正在尝试抓取我公司的网站,我想将所有现有图像下载到一个文件中。我正在使用 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'));
}
这里有两个案例:
- 尝试下载图像时出现未处理的异常。您需要在错误事件 上实现 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
})