2016-07-10 30 views
0

私はnode.jsを使い慣れていて、どんな助けでも大歓迎です。Node.js web scraping

私は、ウェブサイト(この例ではレコードストア(http://www.recordstore.co.uk/recordstore/New-Releases/))からタスクスクレープ製品名と価格を指定されています。

次のコードを実行して製品価格を収集すると、40個の未定義値が返されますが、40個の価格は返されません。私が間違っている場所を教えてください。前もって感謝します。

コード:

var request = require('request'), 
    cheerio = require('cheerio'); 
    prices = []; 

request('http://www.recordstore.co.uk/recordstore/New-Releases/', function(err, resp, body){ 
    if (!err && resp.statusCode == 200){ 
     var $ = cheerio.load(body); 
     var price = $('dl', '#col2').each(function(){ 
      var price = $(this).attr('dd.price'); 
      prices.push(price); 
     }); 

     console.log(prices); 
    } 
}); 

答えて

0

あなたはclass="price"dd要素から価格を取得する必要があります:

$('dl', '#col2').each(function() { 
    var price = $('dd.price', this).text(); 
    prices.push(price); 
}); 
+0

そんなに –

+0

は確か@JordanWoodありがとう、HTTPを参照してください:// stackoverflowの。 com/help/someone-answers。ありがとう。 – alecxe