2017-11-20 8 views
0
var request = require('request'), 
    cheerio = require('cheerio'); 

var url = "https://namu.wiki/w/크롤링"; 


request(url, function (err, res, html) { 
    if (!err) { 
     var $ = cheerio.load(html); 
     $('.wiki-heading-content').each(function(){ 
      var post = {"content": "" }; 
      var data=$(this); 
      post['content']=data.text(); 
      console.log(post); 
     }); 
    } 
}); 

以下のコード行は機能しません。どうして?JavaScript each()が動作しません

//$('.wiki-heading-content').each(function() 
+2

「動作しない」定義:それはエラーを与えず、どちらそうか?それは予想されたものとは異なる出力を作り出しますか? –

+0

jQueryのクラスセレクタ$( '。wiki-heading-content')は機能しません。 –

答えて

5

コードでjQueryを使用していて、関数のスコープ内でこの行のグローバルjQueryオブジェクトを上書きします。

var $ = cheerio.load(html);

+0

申し訳ありません。私はそれをよく理解していませんでした。もう一度説明できますか? –

+0

jQueryライブラリを初期化すると、$ variableに格納されます。上記の行では、その変数の値をオーバーライドします。つまり、その関数スコープで$ variableとしてjQueryオブジェクトがなくなり、定義されていないためjQueryメソッドを呼び出すことはできません –

関連する問題