Wie konvertiert man HTML-Seite in Klartext in node.js?

9

Ich weiß, dass dies schon einmal gefragt wurde, aber ich finde keine gute Antwort für node.js

Ich brauche die Serverseite, um den einfachen Text (keine Tags, Skripte usw.) von einer HTML-Seite zu extrahieren, die abgerufen wird.

Ich weiß, wie man es clientseitig mit jQuery macht (bekomme den .text () Inhalt des body-Tags), weiß aber nicht, wie man das auf der Serverseite macht.

Ich habe Ссылка ausprobiert, aber dies behandelt keine Skripte.

%Vor%

Ich habe phantom.js ausprobiert, kann aber keinen Weg finden, einfach nur Text zu bekommen.

    
metalaureate 14.11.2013, 18:39
quelle

3 Antworten

5

Verwenden Sie jsdom und jQuery (serverseitig).

Mit jQuery können Sie alle Skripte, Stile, Vorlagen und ähnliches löschen und dann können Sie den Text extrahieren.

Beispiel

(Dies wird nicht mit jsdom und Knoten getestet, nur in Chrome)

%Vor%     
hgoebl 14.11.2013, 19:52
quelle
2

Sie können TextVersionJS ( Ссылка ) verwenden, um die reine Textversion einer HTML-Zeichenfolge zu generieren. Es ist reines Javascript (mit Tonnen von RegExps), so dass Sie es im Browser und in node.js auch verwenden können.

Diese Bibliothek funktioniert zwar für Ihre Zwecke, ist aber genauso wie der Text eines Elements im Browser. Sein Zweck besteht darin, eine Textversion einer HTML-E-Mail zu erstellen. Dies bedeutet, dass Dinge wie Bilder enthalten sind. Zum Beispiel angesichts des folgenden HTML- und Code-Snippets:

%Vor%

Die Variable plainText enthält diese Zeichenfolge:

%Vor%

Beachten Sie, dass Skript-Tags korrekt ignoriert werden. Auf GitHub finden Sie die neueste Version des Quellcodes .

    
Geroj 27.07.2016 12:18
quelle
-3

Warum nicht einfach textContent des Body-Tags abrufen?

%Vor%     
Grimnoff 14.11.2013 18:52
quelle