2014-07-04 7 views
7

Ich benutze die Cheerio-Lib und versuche, dieses Skriptfeld zu bekommen - script type="application/json" Aber aus irgendeinem Grund kann es nicht finden diese Skript-Tags. Was ist falsch? Wie repariere ich?Wie Skript Inhalt mit Hilfe von Cheerio

var $ = require('cheerio') 
var parsedHTML = $.load(html) 
console.log(parsedHTML('script').get().length); // this is 0 
+0

Wir müssen erraten, was Sie falsch gemacht haben? – zerkms

+0

Ich füge etwas Code hinzu. Es findet keine Skript-Tags. Unterstützt cheerio kein Skript? – CWon

+3

Dieser genaue Code, kopiert und eingefügt, mit einer Textzeichenfolge, die die Zeile '' drin hat? Gibt '1' für mich zurück. –

Antwort

10

Wenn Sie

var parsedHTML = $.load('<html><head><script type="application/json" src="http://myscript.org/somescript.ks"></script></head></html>') 
console.log(parsedHTML('script').get()[0].attribs['src']); 

Sie eine URL holen und dann die Anfrage, um den Inhalt

zu holen Wenn Sie bei einem Inline-Skript erhalten möchten, scannen Sie dies tun:

console.log(parsedHTML('script').get()[0].children[0].data); 
+0

Die zweite Option scheint hier fehlzuschlagen, wenn ein '<=' Operator gefunden wird – Trevor

1

denen, noch in diesem Thread wandern, wird die folgende Lösung für mich gearbeitet:

const $ = cheerio.load(html, {xmlMode: false}); 
$('script').length; // no longer 0 

(Siehe htmlparser2's options)