2016-05-24 3 views
0

下記のようにGoogles stock api urlにアクセスすると、自動的にファイルがダウンロードされます。私の目標は、自動的にダウンロードされたファイルの内容をローカルシステムの別のファイルにストリームすることです。getを使用してファイルの内容を別のファイルに書き込む

var get = require('get'); 

get('http://www.google.com/finance/historical?q=NASDAQ%3aADBE&startdate=Jan+01%2C+2009&enddate=Aug+2%2C+2012&output=csv').asString(function(err, data) { 
    var stream = fs.createWriteStream("./public/js/googl.csv"); 
     stream.once('open', function(fd) { 
     stream.write(data); 
     stream.end(); 
    }); 
}); 

Iは、別のAPIリンクにこれを達成することができた:[& http://ichart.finance.yahoo.com/table.csv?s=INTC = 2013 = 6 & B = 10 & C = 2013 & D = 6 & E = 10 & F] link

これらの両方のapiリンクは同じことを行い、要求された株からの株価データを含むcsvファイルを出力します。私の問題は、私がエラーをスローし、それが '不明である'と言います。私はconsole.log(data)でデータをログに記録しようとしました。私は何も手に入れません。私が&の出力= csvを削除すると動作しますが、私は実際のページにあると想定しているJavaScriptの束を受け取ります。自動的にダウンロードされたファイルの内容を取得し、get関数のdataパラメータ内に格納するにはどうすればよいですか?

+0

あなたが取得している完全な誤りを含んすることはできますか? – jehna1

+0

これは単にURLを参照するときにクロムで機能するため、リクエストヘッダーをスプーフィングすることでノード要求をクローム要求のように見せかける必要があります。 – dandavis

+0

エラーメッセージは次のとおりです。_stream_writable.js:268 var len = state.objectMode? 1:chunk.length; WriteStream.Writable.writeで ^はTypeError:writeOrBufferで未定義 のプロパティ '長さ' を読み取ることができません(41 _stream_writable.js:268)(_stream_writable.js:11:215) –

答えて

0

私は要求モジュールにGETモジュールから切り替えるとそれは働いていた、例:ここでhttps://www.npmjs.com/package/requestは、私が使用する関数です:

request('http://www.google.com/finance/historical?q=NASDAQ%3aADBE&startdate=Jan+01%2C+2009&enddate=Aug+2%2C+2012&output=csv',  function (error, response, body) { 
if (!error && response.statusCode == 200) { 
    var stream = fs.createWriteStream("./public/js/googl.csv"); 
     stream.once('open', function(fd) { 
     stream.write(body); 
     stream.end(); 
    }); 
    } 
}); 
関連する問題