尝试使用nodejs实现抓取。我正在向特定网址发送请求,当我收到响应时,使用响应将网页中的每个产品存储到一个数组中。对于每个产品我都试图显示产品详细信息,如产品名称,价格和折扣等。我是通过以下代码执行此操作。
var $products = $body.find('.fashion-item');
$products.each(function (i, item) {
var $name = ($(item).find('.info .title').text(),
$price=$(item).find('span.price.regular').text().substr(6),
$discount=$(item).find('span.price.percentoff').text().slice(0,2);
self.items[i] = {
title: $name,
price: $price,
discount: $discount,
};
});
console.log(self.items);
工作正常。如果类名称类似于'fashion-item'或'fashion-item-first',那么这一切都可以。但是如果类名包含单词之间的空格,则不会将任何产品存储在数组($ products)中,即$ products的数组长度为零。我的问题是如果类名如此'fashion-item first',如何做同样的事情。我尝试了很多,但我没有想到。请帮帮我。
答案 0 :(得分:1)
班级名称不能包含空格。在您的示例中,'fashion-item first'
是分配给元素的两个类,可以由.fashion-item
或.first
选择器选择。
答案 1 :(得分:0)
如果您想要同时拥有info和title classe的项目,请选择以下内容:
$(item).find('.info.title')
如果您想要其中一个类,请使用此
$(item).find('.info,.title)