0

我正在尝试抓取一个网站,但我不知道如何获得我想要的选择器。我正在使用这个功能:

function scrapeData(urls) {
var data = [];
var urlPromises = urls.map(function(url) {
    return request(url).spread(function(response, html){
        if (response.statusCode == 200) {
            var $ = cheerio.load(html);
            var elements = $('.IframePrincipal').toArray();
            // Items to scrape
            return elements.map(function(el, index){
                var title = $(el).find('h2').text().replace(/^\s+|\s+$/g, "");
                var stock = $('#FormASP > table:nth-child(4) > tbody > tr > td > table > tbody > tr:nth-child(2) > td.IframePrincipal > table > tbody > tr > td > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td > table > tbody > tr > td').html();
                var price = parseFloat($(el).find('td:nth-child(1)').text().replace(/\€|,/g, '.'));
                // Push items into data array
                return {Title: title, Stock: stock, Price: price, date: date};
            });
        }
        else {
            return [];
        }
    }, function(error){
        console.log("Error");
        return [];
    });
});
return Promise.all(urlPromises).then(flatten);
}

Var title 就像一个魅力。Var Stock 没有,它只是我复制粘贴的 css 路径,而 var 价格来自以前的网站,无论如何我也不知道要得到它。我只是得到“空”。

这是要抓取的 url 示例:要抓取的 站点

4

1 回答 1

0

好的,我正在寻找检查员路径而不是真正的代码一。

于 2014-08-18T23:45:01.550 回答