gpt4 book ai didi

node.js - 如何使用node js处理像 "http://.../data.csv?para1=...¶2=..."这样的在线csv文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:39 27 4
gpt4 key购买 nike

我最近尝试使用node js从其他网站(例如雅虎财经)收集一些数据,其中一个像这样的网址“http://real-chart.finance.yahoo.com/table.csv?s=AAPL&a=11&b=12&c=1999&d=01&e=4&f=2016&g=d&ignore=.csv”,如果我将此网址放入浏览器中,则会弹出一个提示。而在我的 Node 代码中将找不到此网址。

var fs = require('fs');
var http = require('http');
var url = require('url');
var csv = require( "fast-csv" );

// var FILENAME = "file/table.csv";
var FILENAME = "http://real-chart.finance.yahoo.com/table.csv?s=AAPL&a=11&b=12&c=1999&d=01&e=4&f=2016&g=d&ignore=.csv";

function fast_csv_read(filename)
{
csv.fromPath(filename)
.on("data", function(data){
console.log("current data: ");
console.log(data);
})
.on("end", function(){
console.log("done reading");
});
}

fast_csv_read(FILENAME);

如果我用浏览器下载这个文件并将其保存在“file/table.csv”中,它就可以正常工作。不知道出了什么问题......

最佳答案

.fromPath 仅接受文件路径,而不接受 URL。

必须首先从 URL 检索文档,并通过以下方式之一将其内容提供给 fast-csv 模块:

  • 将文档内容传递给.fromString()
  • 将可读流传递给 .fromStream()
  • 通过管道将可读流传输到 .parse()

request module提供一种从 URL 返回可读流的便捷方法;使用npm --save install request安装它。

例如,将可读流传递给 .fromStream() 如下所示:

#!/usr/bin/env node

var csv = require( "fast-csv" );

// Require the 'request' module.
// Install it with `npm install --save request`.
var request = require('request');

var URL = "http://real-chart.finance.yahoo.com/table.csv?s=AAPL&a=11&b=12&c=1999&d=01&e=4&f=2016&g=d&ignore=.csv";

function fast_csv_read_url(url)
{
// Let request return the document pointed to by the URL
// as a readable stream, and pass it to csv.fromStream()
csv.fromStream(request(url))
.on("data", function(data){
console.log("current data: ");
console.log(data);
})
.on("end", function(){
console.log("done reading");
});
}

fast_csv_read_url(URL);

关于node.js - 如何使用node js处理像 "http://.../data.csv?para1=...&para2=..."这样的在线csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35446897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com