2016-12-26 6 views
-1

Ich habe eine Lösung wollen einige Inhalte von URL zu greifen.Wie scrappe ich Webdaten mit Cheerio?

Ich habe Code in server.js:

let request = require('request'); 
let cheerio = require('cheerio'); 

let url = "domain[dot]com/title-to-video"; 
request(url, function(error, response, html){ 
    if (!error && response.statusCode == 200) { 
     let $ = cheerio.load(html); 
     console.log($.text()); 
    } else { 
     console("We've encountered an error: " + error); 
    } 
}); 

Es html zurück:

<html> 
    <head> 
     <title>Website Title</title> 
    </head> 
    <body> 
     <script> 
      getplayer.setvd1('http://abc[dot]com/video34345453.mp4'); 
      getplayer.setvd2('http://abc[dot]com/video43243234.mp4'); 
     </script> 
    </body> 
</html> 

Ich möchte Ausgabe als:

{ 
    http://abc[dot]com/video34345453.mp4, 
    http://abc[dot]com/video43243234.mp4 
} 

thankyou keine Lösung.

Antwort

0

In Ihrem if-Anweisung versuchen, so etwas wie:

var $ = cheerio.load(html), 
    script = $('script').text(), 
    scriptParts = script.split(';'); 

console.log('{'); 

for (var i = 0; i < scriptParts.length; i++) { 
    if (scriptParts[i].trim().length > 0) { 
     var startPosition = scriptParts[i].indexOf('(') + 2, 
      endPosition = scriptParts[i].indexOf(')') - 1; 
     console.log(scriptParts[i].slice(startPosition, endPosition) + ','); 
    } 
} 

console.log('}'); 
+0

Fehler 'TypeError: cheerio.load (...). Find ist keine Funktion' find ist jQuery. –

0

Sie Skript Inhalt wie folgt zugreifen können:.

1) $ ('script') get() [0] .attribs [// Attributname]

2) Lassen Sie $ = cheerio.load (html, {xmlMode: false});