Как я могу преобразовать / экспортировать очищенные данные (используя Node-Osmosis) в файл CSV? - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь очистить некоторые данные и экспортировать результат в файл CSV. (* Я использую узел-осмос)

Я вижу результат в терминале, но не могу экспортировать результат в файл CSV ..

очищенные данные

кажется, что очищенные данные (определенные как 'res' в функции) существуют только в функции осмоса (называемой marketValue).

мой код генерирует файл CSV, но файл приходит ни с чем (* набираются только имена столбцов)

CSV экспортировано

Что мне здесь не хватает?

мой код указан ниже:

const osmosis = require('osmosis');
const fs = require('fs')
const urls = 'https://www.transfermarkt.com/spieler-statistik/wertvollstespieler/marktwertetop?land_id=0&ausrichtung=alle&spielerposition_id=alle&altersklasse=alle&jahrgang=0&kontinent_id=0&plus=1'
const converter = require('json2csv')
var stringify = require('csv-stringify')

function marketValue() {
    return new Promise((resolve, reject) => {
        let response;

osmosis
.get(urls)
.find('table.items:first tr:gt(0)')
.set({
    Player_Rank : 'td.zentriert',
    Player_Name : 'tr[1]',
    Player_Age: 'td[3]',
    Position : 'tr[2]',
    Market_Value : 'td[6]',
    Matches: 'td[7]',
    Goals: 'td[8]',
    Own_Goals: 'td[9]',
    Assists: 'td[10]',
    Yello_Cards: 'td[11]',
    Second_Yello_Cards: 'td[12]',
    Red_Cards: 'td[13]',
    Subs_On: 'td[14]',
    Subs_Off: 'td[15]'
})
.data(res => response = res)
.error(err => reject(err))
.done(() => resolve(response));
})
}

marketValue().then(res => {
    console.log(res);
    var fields =['Player_Rank', 'Player_Name', 'Player_Age', 'Position', 'Market_Value', 'Matches', 'Goals', 'Own_Goals', 'Assists', 'Yello_Cards', 'Second_Yello_Cards', 'Red_Cards', 'Subs_On', 'Subs_Off']
    var parser = new converter.Parser({ fields })
    var csvstr = parser.parse(res);
    fs.writeFileSync('./tempcsv.csv', csvstr);
})
...