var request = require('request');
var cheerio = require('cheerio');
var URL = new Array(
"https://Страница1",
"https://Страница2",
"https:Страница3");
var request = require('request');
var cheerio = require('cheerio');
var tress = require('tress');
var fs = require('fs');
var Json2csvParser = require('json2csv').Parser;
var needle = require('needle');
var results = [];
var urls = [];
fs.truncate('one.csv', 0, function(){console.log('done')});
var q;
q = tress(function(URL, callback){
needle.get(URL, function (err, res, body) {
if (err) throw err;
var $ = cheerio.load(res.body);
//TODO считал количество урлов автоматом по селектору
//var listLength = $('.user-preview_name').length;
//var link;
for (i = 0; i <=80; i++) {
results.push({
Name: $('.user-preview_name').eq( i ).text().trim(),
City: $('.user-preview_city').eq( i ).text().trim(),
Spezialinost: $('.user-preview_specialization').eq( i ).text().trim(),
});
//console.log(urls[i]);
}
console.log(res.statusCode);
callback();
});
});
q.push(URL, function(){
console.log("watch: push ");
});
q.drain = function(){
console.log("success ");
//Данные которые спарсил раскладываю по следующим столбцам
const fields = [ 'Name', 'City', 'Spezialinost','date', 'urlp'];
const opts = { fields , delimiter: ';'};
try {
// Из json данные складываются в csv файл
const parser = new Json2csvParser(opts);
const csv = parser.parse(results);
fs.appendFileSync('one.csv', '\ufeff'+ csv , {encoding: 'utf8'});
} catch (err) {
console.error(err);
}
}
Вопрос сам код выполняет действия с одной страницой, потом с другой затирая последующие результаты в CSV (((
Как решить этот вопрос ?