我还没有找到问题的答案,其中包含其他人提出的问题。 我写了一个小的web scraper,它将数据存储到1个数组,并希望将它(数组)写入文件。我无法正确设置。
我正在使用nodejs。有人可以编写一个采用数组内容然后写入文件的示例。请把它分解为基础,我仍然是编程的新手。
感谢代码在下面
var content = [];
var request = require('request');
var cheerio = require('cheerio');
var URL = 'http://www.amazon.com';
request(URL, function(error, response, html){
if (error){
consol.log('Error:', error);
}
if (response.statusCode !== 200) {
console.log('Invalid Status Code Returned:', response.statusCode);
}
//console.log(html);
var $ = cheerio.load(html);
$('td').each(function (i, element) {
var a = $(this).next();
var trimmed_a = a.text();
trimmed_a = trimmed_a.trim();
var str = trimmed_a.replace(/\s\s+/g,"");
var newStr = str.trim();
content.push(newStr);
});
console.log(content);
})
答案 0 :(得分:2)
最简单的答案:
var fs = require('fs');
var arr = ['cat','dog','bird'];
var filename = 'output.txt';
var str = JSON.stringify(arr, null, 4);
fs.writeFile(filename, str, function(err){
if(err) {
console.log(err)
} else {
console.log('File written!');
}
});
此处,arr
将是您的数据数组,因为fs.writeFile
expects a string,您需要将其转换为字符串。我使用null,4
个附加参数使其非常漂亮,因此您可以使用四个空格缩进来查看它。
希望这有帮助!
答案 1 :(得分:0)
无法将真实数组/对象存储在文件中 - 其内容是字节,但是您可以存储此对象的字符串格式,然后使用JSON解析相同的格式(我认为这个ref等于Node.js):
json_format = JSON.stringify(content)
var json_format
因此,如果要在获取其内容后读取文件中的数组
JSON.parse(json_format)
提醒,在JSON中没有任何函数声明,除NaN
,Infinity
,undefined
(不是值)等外,都支持所有原始值,等等,并且仍然包含特殊数字语法(指数(+ | - ),...):JSON。 JSON不支持的所有值,JSON.stringify
将它们视为null
。我不确定它在不同平台之间的确切作用(我只使用浏览器JS)。
现在,保存/写入我们当前拥有的文件 异步fs.writeFile和同步fs.writeFileSync。不过,我对Node.js了解不多。使用这些方法时,必须在某处包含文件系统,通常是这样(文件系统在模块中):
fs = require('fs'); var fs