Am trying to implement scraping using nodejs. Am sending request to a particular url and when i get the response, using the response am storing each products in a page into an array. For each product am trying to display the product details like product name, price and discount etc. Am doing this by the following code.
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);
It is working fine. If the class name is like ‘fashion-item’ or ‘fashion-item-first’ all this works fine. But if the class name contains the space in between the word, am not getting any products stored in array ($products) i.e. array length of $products is zero. My question is how to do the same thing if class name like this ‘fashion-item first’. I tried very much, but i didn’t get any idea. Please help me.
Class names cannot have spaces. In your example,
'fashion-item first', are two classes assigned to an element, which can be selected by either.fashion-itemor.firstselectors.