ich eine Web-Scraping App in node.js
gemacht, die p.title
und p.artist
aus dem HTML-Code der Website führt, dann speichert jedes der beiden Elemente in zwei getrennte Felder wie folgt aus:Daten druckt mehrmals statt, sobald
res.on('data', function(html){
var $ = cheerio.load(html);
var commonTitles = [];
var commonArtists = [];
commonTitles.push($.text($('p.title').eq(0)));
commonTitles.push($.text($('p.title').eq(1)));
commonTitles.push($.text($('p.title').eq(2)));
commonTitles.push($.text($('p.title').eq(3)));
commonTitles.push($.text($('p.title').eq(4)));
commonArtists.push($.text($('p.artist').eq(0)));
commonArtists.push($.text($('p.artist').eq(1)));
commonArtists.push($.text($('p.artist').eq(2)));
commonArtists.push($.text($('p.artist').eq(3)));
commonArtists.push($.text($('p.artist').eq(4)));
console.log(
'The 5 most recently played titles: \n' +
commonTitles[0] + '/' + commonArtists[0] + '\n' +
commonTitles[1] + '/' + commonArtists[1] + '\n' +
commonTitles[2] + '/' + commonArtists[2] + '\n' +
commonTitles[3] + '/' + commonArtists[3] + '\n' +
commonTitles[4] + '/' + commonArtists[4]
);
});
Ich möchte alle 5 zuletzt gespielten Titel mit ihren Künstlern von einer Seite auflisten und mit Hilfe von console.log
ausdrucken. Ich erwarte, dass dies als meine Ausgabe in Eingabeaufforderung erhalten:
The 5 most recently played titles:
I Make It Rain (Original Trap Mix)/Jimithegenius
More Pragmatic (Original Version)/Jahnauasca
Kiss The Devil (Just A Gent Remix)/Bel Hair
Check (Levitate Remix)/Meek Mill
Party Right (Charlie Traplin Trap Mix)/Lethal Bizzle feat. Ruby Goe
Das Playlist-Updates ab und zu, so ist dies nur ein Beispiel.
Statt sich zu drucken wie darauf hin, dass es druckt sie ohne die Arrays mit zusätzlichen arguements aus, als ob die console.log
hat mich in eine seltsame Schleife wie folgt gesetzt worden:
The 5 most recently played titles:
/
/
/
/
/
The 5 most recently played titles:
/
/
/
/
/
The 5 most recently played titles:
I Make It Rain (Original Trap Mix)/Jimithegenius
More Pragmatic (Original Version)/Jahnauasca
Kiss The Devil (Just A Gent Remix)/Bel Hair
Check (Levitate Remix)/Meek Mill
Party Right (Charlie Traplin Trap Mix)/Lethal Bizzle feat. Ruby Goe
The 5 most recently played titles:
/
/
/
/
/
The 5 most recently played titles:
/
/
/
/
/
Warum es zusätzliche Daten nicht ausdrucken? Wenn die console.log
in einer Schleife gewesen wäre, dann wäre die gesamte zusätzliche Ausgabe nicht leer, alle würden Daten von den Arrays enthalten. Ich habe sogar versucht, die Arrays außerhalb von res.on
als globale Arrays zu erstellen, aber dann druckt es die Titel und Künstler als undefined
. Wie werde ich diese unerwünschten Linien los?
Vielen Dank im Voraus,
Tim_W8
"res.on" wird 5 Mal aufgerufen. – Veve