node.js Osmosis 将结果写入文件
node.js Osmosis write results to file
我已经成功地抓取了多个具有相同结构的站点。当我打印结果时,它们看起来不错,现在我想将其全部保存到一个文件中。
问题是只有最后一个抓取的 MyData 对象被保存到文件中。
var osmosis = require('osmosis');
var jsonfile = require('jsonfile')
var sitesToHandle = ['site1', 'site2', 'site3', 'site4']
sitesToHandle.forEach((urlToHandle) => {
osmosis.get(urlToHandle)
.find('.productList')
.set({
MyData: [
{
'ID': 'a.number',
'Product': 'a.productname',
'Price': 'a.price',
}
]
})
.data(function(document) {
console.log(document);
var file = 'osmosis.json'
jsonfile.writeFile(file, document)
});
});
您每次迭代都在重写文件。
您必须使用 {flag: 'a'}
将数据附加到现有 JSON 文件:
jsonfile.writeFile(file, document, {flag: 'a'})
我已经成功地抓取了多个具有相同结构的站点。当我打印结果时,它们看起来不错,现在我想将其全部保存到一个文件中。
问题是只有最后一个抓取的 MyData 对象被保存到文件中。
var osmosis = require('osmosis');
var jsonfile = require('jsonfile')
var sitesToHandle = ['site1', 'site2', 'site3', 'site4']
sitesToHandle.forEach((urlToHandle) => {
osmosis.get(urlToHandle)
.find('.productList')
.set({
MyData: [
{
'ID': 'a.number',
'Product': 'a.productname',
'Price': 'a.price',
}
]
})
.data(function(document) {
console.log(document);
var file = 'osmosis.json'
jsonfile.writeFile(file, document)
});
});
您每次迭代都在重写文件。
您必须使用 {flag: 'a'}
将数据附加到现有 JSON 文件:
jsonfile.writeFile(file, document, {flag: 'a'})