node 抓图,图片下载不完全

使用node request模块批量抓取图片,但是发现有些图片下载的不完全,图片一部分显示正常,一部分是灰色的。
而且图片下载不全也是随机出现,不一定是哪一张。
代码如下:

var arr=["http:www.a.com/1.png","http:www.a.com/2.png","http:www.a.com/3.png"....]
for(var i=0;i<30;i++){
    lodPic(arr[i])
}
function loadPic(url){
    var _url=encodeURI(url);
    request.head(_url,function(err,res,body){
        if(err){
            console.log(err);
        }
        request(url).pipe(fs.createWriteStream(ph)).on('close',function(){
            console.log('finfish');
        });;
    });
}
阅读 4.5k
2 个回答

可能 30 个并发写入磁盘有点问题,题主试试减少并发数量?
或者试试 async.js 的 parallelLimit() ?

http的HEAD方法是没有响应主体的,你用这个http方法请求图片肯定什么都拿不倒。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题