2016-07-10 23 views
0

Ich bin neu bei node.js und jede Hilfe würde sehr geschätzt werden.Node.js Web Scraping

Ich habe die Aufgabe, Produktnamen und Preise von einer Website zu kratzen - in diesem Beispiel ein Plattengeschäft (http://www.recordstore.co.uk/recordstore/New-Releases/).

Wenn ich den folgenden Code ausführen, um Produktpreise zu sammeln, werden 40 undefinierte Werte zurückgegeben, aber nicht 40 Preise. Könnten Sie mir bitte mitteilen, wo ich falsch liege? Danke im Voraus.

Code:

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); 
    } 
}); 

Antwort

0

Sie müssen sich mit dem class="price" die Preise von den dd Elemente erhalten:

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

Vielen Dank –

+0

@JordanWood sicher finden Sie unter http: // Stackoverflow. com/help/jemand-Antworten. Vielen Dank. – alecxe