2016-12-26 2 views
-1

У меня есть решение, чтобы получить некоторый контент из URL.Как очистить веб-данные с помощью Cheerio?

У меня есть код в 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); 
    } 
}); 

Он вернется HTML:

<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> 

Я хочу выход как:

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

ThankYou любое решение.

ответ

0

В вашей, если заявление, попробовать что-то вроде:

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

Ошибка 'TypeError: cheerio.load (...). Find не является функцией' find is jQuery. –

0

Вы можете получить доступ к содержимому сценария следующим образом:.

1) $ ('сценарий') получаем() [0] .attribs [// имя атрибута]

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

Смежные вопросы