2016-07-10 2 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

Вы должны получить цены от dd элементов с class="price":

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

Большое спасибо –

+0

@JordanWood уверены, смотрите HTTP: // StackOverflow. ком/помощь/кто-то-ответы. Благодарю. – alecxe