#javascript #node.js #download #http-request
#javascript #node.js #Скачать #http-запрос
Вопрос:
Короче говоря, я пытаюсь загрузить кучу файлов .png из zamzar после их конвертации. Существует более 200 файлов. Чтобы загрузить их, вы нажимаете на ссылку, она переносит вас на страницу, которая запускает автоматическую загрузку. Тем не менее, я пытаюсь автоматизировать этот процесс. Ниже приведен небольшой скрипт, который я использовал:
var fs = require('fs'),
request = require('request'),
linkPrefix = "http://www.zamzar.com/downloadFile.php?uid-XXX";
var download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};
var links = ["1.png", "2.png", ..., "200.png"]; //bunch of images
links.forEach(function(e){
download(linkPrefix e, e, function(){
console.log('Done downloading image: ' e);
});
});
Мой вопрос в том, как, черт возьми, мне отбросить html-ответы и захватить только изображения? Я попытался поиграть с инструментами разработчика Chrome для анализа ответа, но у меня ничего не получается.
Ответ №1:
Я нашел исправление. Обычно, когда автоматическая загрузка файла не запускается, есть ссылка, по которой нужно щелкнуть. Я использовал это вместо переменной «linkPrefix», используемой в приведенном выше коде.
linkPrefix = "http://www.zamzar.com/download.php?uid-XXX"; //download instead of downloadFile
Работает просто великолепно!