2016-07-01 10 views
1

私はすでにnoodle.jsをnpm installでインストールしました。これが私のコードです。しかし、このファイル(noodleTest.js)をterminal:node noodleTest.jsで実行すると、次のエラーが発生します。jQuery.getJSONは関数ではありません。私は、この問題に関するスタックオーバーフローの回答の大部分を見てきましたが、修正を見つけることができませんでした。 http://noodlejs.comで提供されている例では、コンソールに配列が返されますが、このスニペットを実行しようとするとエラーが発生します。どんな助けもありがとうございます。Noodle.jsのセットアップ/ jQueryのプロセス(Web Scraping Help!)

var noodle = require('noodlejs'), 
jQuery = require ('jquery'); 

var query = { 
     url: 'http://google.com/search?q=javascript', 
     type: 'html', 
     selector: 'h3.r a', 
     extract: 'text' 
    }, 
    uriQuery = encodeURIComponent(JSON.stringify(query)), 
    request = 'http://example.noodlejs.com/?q=' + 
     uriQuery + '&callback=?'; 

// Make Ajax request to Noodle server 
jQuery.getJSON(request, function (data) { 
    console.log(data[0].results); 
}); 

編集:私は
http://%20github.com/dharmafly/noodle#noodle-as-a-node-moduleで与えられた例以下試みたが、noodlejs.comに与える走ら例を使用しますが、私はデータを読み取るするかどうかはわかりません、またはどのようにオブジェクト内のコンテンツを抽出します。 var noodle = require( 'noodlejs');

noodle.query({ 
    url:  'http://google.com/search?q=javascript', 
    selector: 'h3.r a', 
    extract: 'text' 
}) 
.then(function (results) { 
    console.log(results); 
}); 

これは次のように出力される。

[noodle log #1] 
Thu Jul 07 2016 00:09:43 GMT-0700 (PDT) 
Memory: 18.00mb (18870272 bytes) 
Noodle: The query follows... 
{"url":"http://google.com/search?q=javascript","selector":"h3.r a","extract":"text","type":"html","cache":true} 


[noodle log #2] 
Thu Jul 07 2016 00:09:44 GMT-0700 (PDT) 
Memory: 19.00mb (19918848 bytes) 
Cache: Page has been cached 


[noodle log #3] 
Thu Jul 07 2016 00:09:44 GMT-0700 (PDT) 
Memory: 20.00mb (20967424 bytes) 
Cache: Result has been cached 

{ results: [ { results: [Object], created: 2016-07-07T07:09:44.286Z } ] } 
+0

jqueryなしでサンプルを試しましたか?ここでそれを見つけることができますhttps://github.com/dharmafly/noodle#noodle-as-a-node-moduleまたはjqueryはあなたが使用する必要があるものですか? –

+0

返信いただきありがとうございます。返された結果をどのように読み取るかを理解するために時間を費やしましたが、これを把握することはできません。オブジェクトのコンテンツにアクセスする方法はありますか? – Yeeee

答えて

1

この作品麺クエリの例です。私たちが取り組んでいるものの細部には注意を払わず、私が求めたセレクタと抽出したいものを見てください。

私はページからランダムに選んだセレクターがあり、抽出されたデータはテキストです。しかし、抽出されたテキストを見るためには、私が結果と何をしたかを見てください。

var noodle = require('noodlejs'); 

noodle.query({ 
    url:  'http://edition.cnn.com/', 
    selector: '#intl_homepage1-zone-1 > div.l-container > div > div.column.zn__column--idx-0 > ul > article > a > h2', 
    extract: 'text' 
}) 
    .then(function (results) { 
    console.log(results); 
    console.log(results.results[0]); 

    }); 

結果は、あなたが研究している場合、多分あなたはそれをより有効に活用することができますが、結果に行けば、あなたは私がしたしたものを見ることができるように二回あなたが最終的に取得する理由は、私が実際に確認されませんでした連鎖されていますあなたが抽出したい情報。

+0

一貫していただきありがとうございます!うん、これは間違いなく多くのことを明確にしていましたが、なぜ結果がチェーン化されているのかわからなかったのですが、2回結果に入るのは2倍です。 – Yeeee