您的位置:首頁技術文章
文章詳情頁

javascript - node 抓圖,圖片下載不完全

瀏覽:111日期:2023-09-22 14:02:01

問題描述

使用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’);});; });}

問題解答

回答1:

var request = require(’request’);var options = { url: ’https://api.github.com/repos/request/request’, headers: { ’content-length’: 1024, }};function callback(error, response, body) { //}request(options, callback);

看代碼,把content-length設置的再大一點試試,我之前用cpp寫靜態服務器的時候遇到過,有的圖片比這個值要大,所以只有一半被傳輸成功。而有的圖片比這個值小,所以能傳輸完整。不知道你也是不是這個問題。

回答2:

可能 30 個并發寫入磁盤有點問題,題主試試減少并發數量?或者試試 async.js 的 parallelLimit()?。?/p>回答3:

http的HEAD方法是沒有響應主體的,你用這個http方法請求圖片肯定什么都拿不倒。

標簽: JavaScript
相關文章:
国产综合久久一区二区三区