当我去下面列出的Googles stock api url时,我会自动下载文件。我的目标是获取自动下载的文件内容并将其流式传输到本地系统上的另一个文件。
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();
});
});
我能够通过另一个api链接实现此目的:link
[http://ichart.finance.yahoo.com/table.csv?s=INTC& a = 6& b = 10& c = 2013& d = 6& e = 10& f = 2013]
这两个api链接都做同样的事情,输出一个csv文件,其中包含来自请求库存的库存数据。我的问题是,当我使用googles api链接时,它会抛出一个错误,并说它没有被识别出来'。我试着用console.log(数据)记录数据;而且我也没有得到任何东西。当我删除& output = csv它可以工作,但我收到一堆javascript,我假设是在实际页面上。如何获取自动下载文件的内容并将其存储在我的get函数的数据参数中?
答案 0 :(得分: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();
});
}
});