我正在抓取一个包含大量数据的网页,格式化为HTML表格。您必须提交表单才能生成表格。我的节点脚本提交表单的所有排列,每次擦除结果表,将每行转换为一行数据。
问题是,当我将数据写入某个文件时,当文件大小达到10MB时,它就会停止工作。有时它会少一些;有时多一点。我尝试将文件写为.csv,.json和.txt,并且每次出现同样的问题时。
我正在使用fs
来执行此任务。相关代码是:
var fs = require("fs");
var stream = fs.createWriteStream("data.csv"); // can also be .json or .txt
stream.write(line_of_data);
我可以console.log(line_of_data)
并且它可以正常工作,直到没有数据留下来。但是大约10MB,输出文件将不再接受任何数据行。停止点似乎几乎完全是任意的 - 每次我运行脚本时,它都会停止在不同的点写入。我的硬盘上有很多存储空间,所以问题必须与其他东西有关。
答案 0 :(得分:0)
我最终使用MongoDB来存储数据。要将MongoDB安装为节点模块,请运行npm install mongodb --save
。相关的javascript是:
MongoClient = require("mongodb").MongoClient;
MongoClient.connect("mongodb://localhost:27017/database", function(err, db) {
if (!err) {
// set up mongodb collection
db.createCollection("collection", function(err, collection) {});
var collection = db.collection("collection");
// after scraping data...
// insert a data object (line_of_code)
collection.insert(line_of_data, {w: 1}, function(err, result) {
if (err) console.log(err);
});
}
});
转换数据的一些命令: