let request = require("request")
let fs = require("fs")
let links = [...]
const download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback)
})
}
let downloadedImages = 0
for(const url of images){
let format = url.match(/(png|jpg|webo|jpeg|gif)/)[0]
download(url, `${downloadedImages}.${format}`, function(){
console.log(`${downloadedImages}.${format} saved [${downloadedImages}/${images.length}]`)
downloadedImages = downloadedImages + 1
})
}由于某种原因,它只下载了links的第一个镜像,它记录了30.jpg saved [30/456],但我在任何地方都看不到这个镜像
它下载的一张图片被破坏了:

发布于 2021-08-19 01:17:50
所以我使用了安慰剂并让它起作用了
const axios = require("axios")
const fs = require("fs")
let links = [...]
function download(url, filePath){
return axios(url, {method: 'GET', responseType: "stream"})
.then( fileResponse => {
fileResponse.data.pipe(fs.createWriteStream(filePath + '.' + extension))
return fileResponse;
})
}
let downloadedImages = 0
for(const url of links){
let format = url.match(/(png|jpg|webo|jpeg|gif)/)[0]
download(url, `${downloadedImages}.${format}`, function(){
console.log(`${downloadedImages}.${format} saved [${downloadedImages}/${images.length}]`)
downloadedImages = downloadedImages + 1
})
}https://stackoverflow.com/questions/68840801
复制相似问题