Node.js网页抓取

时间:2016-07-10 16:55:54

标签: web-scraping request cheerio

我是node.js的新手,非常感谢任何帮助。

我已经将任务从网站上删除了产品名称和价格 - 在本例中是一个记录存储(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);
    }
});

1 个答案:

答案 0 :(得分:0)

您需要使用dd

获取class="price"元素的价格
$('dl', '#col2').each(function() {
    var price = $('dd.price', this).text();
    prices.push(price);
});