2016-08-16 3 views
0

Ich kratze Klartext von Websites, aber ich kann nicht scheinen, den Text zu trennen.Scraped Text ist verbunden, wie kann ich trennen?

Hier ist, was ich meine ...

var Horseman = require("node-horseman"); 
var horseman = new Horseman(); 

horseman 
    .open('http://nickoskitchen.com/') 
    .text('.rc-headline') 
    .then(function(text){ 
    console.log(text); 
    horseman.close(); 
    }); 

Das Ergebnis dieses Skript läuft ...

admin:~/workspace $ node test4.js 
Recipes Inspired By New York City Street Foods10 More Unbelievable Red Velvet Desserts10 Twists On The Deviled EggElevate These 10 Dishes With Earthy Artichoke 

sehen? Es wird als eine Zeichenfolge abgerufen, aber wenn ich .count() bekomme ich 4 Ergebnisse.

Wenn jemand mir bitte mit diesem Problem helfen könnte, wäre ich sehr dankbar.

Antwort

2

Die text()-Methode ruft nur den Textinhalt des übereinstimmenden Selektors ab, so dass jeder Listenstil (oder ein beliebiges HTML-Element/Stil, das zum Trennen der Werte verwendet wird) auf der Seite verloren geht und der verzerrte Text übrig bleibt .

Es gibt ein npm-Paket, das Sie sehen möchten, wenn Sie die Website für einige Inhalte scrape. Es heißt cheerio (jQuery für den Server). Fügen Sie es Ihrem Code wie folgt hinzu

var Horseman = require("node-horseman"); 
var cheerio = require("cheerio"); 
var horseman = new Horseman(); 

horseman 
    .open('http://nickoskitchen.com/') 
    .html() 
    .then(function(html){ 
     var $ = cheerio.load(html); 
     var headlines = $('.rc-headline'); 
     headlines.each(function(){ 
      console.log($(this).text()); 
     }); 
     horseman.close(); 
    }); 

Hoffe, das hilft!

+0

Sie sind ein Lebensretter, Kennasoft. Wie viel berechnen Sie pro Stunde für die Konsultation? Ich wäre sehr an Ihrer Hilfe interessiert. Sie sind ein herausragender Entwickler, wenn Sie Ihr Profil betrachten. – kiefx

+0

Danke für die Komplimente, aber ich bin so gewöhnlich wie sie kommen. Zufällig bin ich zufällig vor dir auf Cheerio gestoßen. StackOverflow existiert genau aus diesem Grund, also müssen wir nicht bezahlen, um unsere Probleme zu lösen. Akzeptiere die Antwort, und ich bin glücklich damit. Vielen Dank! – kennasoft

Verwandte Themen