Разобрать / сохранить / получить ответ CSV с URL с NodeJS - PullRequest
0 голосов
/ 30 марта 2011

Я пытаюсь получить результаты по финансовому URL-адресу Yahoo:

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');
});
 });

, но с CSV, полученным из URL-адреса Yahoo, без помещения ответа в отдельный файл CSV, и ему сказали, что мне нужно каким-то образом использовать stream.write.Я новичок в Node и был бы признателен за помощь в выяснении этого.Заранее спасибо за помощь!

1 Ответ

4 голосов
/ 31 марта 2011

Итак, вы пытаетесь получить CSV из http://finance.yahoo.com/d/quotes.csv?s=XOM=sn1yr и проанализировать данные, чтобы сохранить их в базе данных?

Моя библиотека для очистки 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..
        }
    });
});
...