11

以下のコードを使用して、サイトから csv ファイル (広告レポート) をダウンロードしようとしています。問題は、csv ファイルではなく HTML ページをダウンロードすることです。ログイン後なのでURLは教えられませんが、以下のURLからFirefoxをダウンロードする場合も同様です。

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

これは GET 要求であり、要素の [Network] タブを検査すると、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)
4

1 に答える 1

17

私自身の質問に答えました、ここに解決策があります

参考: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);
        }
     }
 });
于 2013-10-05T20:10:14.013 に答える