2016-12-26 14 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を返す:すべてのソリューションありがとう

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

:として

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

私は出力をしたいし。

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

、何かしてみてください。

1) $を( 'スクリプトを')(取得)[0] .attribsを[//属性名]

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

+0

エラー 'TypeError:cheerio.load(...)。findは関数ではありません。 'findはjQueryです。 –

0
次のように、スクリプトのコンテンツにアクセスすることができ

:あなたのif文で

関連する問題