【问题标题】:casperjs download csv filecasperjs 下载 csv 文件
【发布时间】:2013-10-05 15:52:53
【问题描述】:

我正在尝试使用以下代码从网站下载 csv 文件(广告报告)。问题是,它将下载 HTML 页面而不是 csv 文件。我不能给你 URL,因为它在登录后面,但是当你从下面的 URL 下载 Firefox 时,情况类似

http://www.mozilla.org/en-US/firefox/new/

这是一个 GET 请求,当我检查元素 Network Tab 时,get 请求被取消。我是 Casper 的新手,不知道如何处理此类请求。任何帮助将不胜感激

casper.then(function() {
   var downloadURL = "";

  this.evaluate(function() {
      var downloadURL = "http://www.lijit.com"+jQuery("#dailyCSV").attr('href'); 
   });

   this.download(downloadURL, '/Users/Ujwal/Downloads/caspertests/stats.csv');
});

响应标头

Age:0
Cache-Control:max-age=0
Connection:keep-alive
Content-Disposition:attachment; filename=stats.csv
Content-Encoding:gzip
Content-Length:1634
Content-Type:text/x-csv
Date:Sat, 05 Oct 2013 15:28:21 GMT
Expires:Sat, 05 Oct 2013 15:28:21 GMT
P3P:CP="CUR ADM OUR NOR STA NID"
Server:PWS/8.0.16
Vary:Accept-Encoding
X-Px:ms h0-s28.p9-jfk ( h0-s62.p9-jfk), ms h0-s62.p9-jfk ( origin>CONN)

【问题讨论】:

    标签: phantomjs casperjs


    【解决方案1】:

    回答了我自己的问题,这是解决方案

    参考:https://github.com/knorrium/google-books-downloader/blob/master/gbd.js

     //Download the daily csv
     casper.then(function() {    
         this.click('#dailyCSV');
     });
    
     casper.on('resource.received', function (resource) {
         "use strict";
         if ((resource.url.indexOf("publisherCSV/?startDate=") !== -1) ) {        
            this.echo(resource.url);
            var url, file;
            url = resource.url;
            file = "stats.csv";
            try {
                this.echo("Attempting to download file " + file);
                var fs = require('fs');
                casper.download(resource.url, fs.workingDirectory+'/'+file);
            } catch (e) {
                this.echo(e);
            }
         }
     });
    

    【讨论】:

    • 如果文件是从同一原始页面下载的,也可以使用“page.resource.received”。 (在我的测试过程中,这似乎避免了文件被下载两次。)
    猜你喜欢
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多