1

我正在尝试从 Yahoo Finance URL 获取结果:

http://finance.yahoo.com/d/quotes.csv?s=XOM=sn1yr 返回:

"XOM",4:00pm - <b>83.25`</b>`,2.11,13.42

我正在尝试使用 Mongoose 将这些结果存储在数据库中。我有一些代码可以从现有的 CSV 文件中保存(如您所见,内容不同但相关):

 var writer = new csv.CsvWriter(process.stdout);
  reader.setColumnNames(["Symbol","Company","StockExchange"]);
  reader.addListener('data', function(data) {
  console.log(data);
  var stock = new Stock(data).save();
 });

我正在尝试做类似的事情:

Scraper 是一个模块,位于https://github.com/mape/node-scraper

scraper('http://search.twitter.com/search?q=javascript', function(err, $) {
if (err) {throw err;}

$('.msg').each(function() {
    console.log($(this).text().trim()+'\n');
});
 });

但是使用来自 Yahoo URL 的 CSV 结果,没有将响应放入单独的 CSV 文件中,并且被告知我需要以某种方式使用 stream.write。我是 Node 的新手,希望能得到一些帮助来解决这个问题。在此先感谢您的帮助!

4

1 回答 1

5

所以你试图从http://finance.yahoo.com/d/quotes.csv?s=XOM=sn1yr获取 CSV并解析数据以便将其存储在数据库中?

我的抓取库node.io可能会有所帮助。

require('node.io').scrape(function() {
    this.get('http://finance.yahoo.com/d/quotes.csv?s=XOM=sn1yr', function(err, data) {
        var lines = data.split('\n');
        for (var line, i = 0, l = lines.length; i < l; i++) {
            line = this.parseValues(lines[i]);

            console.log(line); //['XOM, '4:00pm - <b>83.25`</b>`', '2.11', '13.42']

            //Do something with your data..
        }
    });
});
于 2011-03-31T11:33:28.673 回答