如何访问访问页面时自动下载的文件?

时间:2014-07-03 14:45:29

标签: javascript node.js download http-request

简而言之,我试图在转换后从zamzar下载一堆.png文件。有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 个答案:

答案 0 :(得分:0)

我想出了一个解决办法。通常,当自动文件下载没有启动时,会有一个点击链接。我用它而不是" linkPrefix"上面代码中使用的变量。

linkPrefix = "http://www.zamzar.com/download.php?uid-XXX";  //download instead of downloadFile

像魅力一样!