2012-04-02 5 views
0

nodej를 사용하여 스크래핑을 구현하려고합니다. 특정 URL에 요청을 보내고 응답을 받으면 응답을 사용하여 각 제품을 페이지에 배열로 저장합니다. 각 제품에 대해 제품 이름, 가격 및 할인 등과 같은 제품 세부 정보를 표시하려고합니다. 다음 코드로이 작업을 수행합니다.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'와 같으면이 모든 것이 정상적으로 작동합니다. 그러나 클래스 이름에 단어 사이에 공백이 있으면 array ($ products)에 저장된 제품을 얻지 못하고 있는데, 즉 $ products의 배열 길이는 0입니다. 내 질문은이 '패션 - 항목 먼저'같은 클래스 이름을 경우 같은 일을하는 방법입니다. 나는 대단히 노력했지만 아무런 생각이 들지 않았다. 도와주세요.

답변

1

클래스 이름에는 공백을 사용할 수 없습니다. 귀하의 예에서 'fashion-item first'은 요소에 할당 된 두 개의 클래스이며 .fashion-item 또는 .first 선택자로 선택할 수 있습니다. 당신이 정보와 제목 CLASSE 모두이 항목이 그들을 선택합니다

+0

가 대단히 감사합니다 사용합니다. 문제가 해결되었습니다. –

0

:

$(item).find('.info.title') 

당신이이 클래스의 항목을 원하는 경우,이

$(item).find('.info,.title)