2017-01-30 8 views
1

다음은 내가 달성하고자하는 것입니다. 나는 웹 페이지를 성공적으로 긁어내어 필요한 정보를 추출 할 수 있었고 페이지 링크가 href 속성에서 즉시 사용할 수있는 몇 개의 웹 사이트에서 이미 이것을 실행했다. 내 질문은 매김 변수가 동적 인 경우 다음 페이지로 이동 않는 방법입니다nodejs/cheerio/x-ray의 다이나믹 링크

<ul> 
    <li> 
     <a class="clickPage" href="javascript:previousPage()">1</a> 
    </li> 
    <li> 
     <a class="clickPage active" href="javascript:currentPage()">2</a> 
    </li> 
    <li> 
     <a class="clickPage" href="javascript:nextPage()">Next Page</a> 
    </li> 

지금까지 여기에 코드를 내가 가진 무엇으로 다른 사이트 또한

var request = require('request'),  // simplified HTTP request client 
    cheerio = require('cheerio'),  // lean implementation of core jQuery 
    Xray = require('x-ray'),   // 
    x = Xray(), 
    fs = require('fs');     // file system i/o 

/* 
    TODO: Make this feature dynamic, to take in the URL of the page 
    var pageUrl; 
*/ 

var status = 'for sale'; 
var counter = 0; 

x('http://www.example.com/results/1', '.results', [{ 
    id: '[email protected]', // extracts the value from the attribute id 
    title: 'div.info h2', 
    category: 'span.category', 
    price: 'p.price', 
    count: counter+1, // why doesnt this update? this never shows in the json 
    status: status  // this value never shows up in the json 
}]) 
    .paginate(whatShouldThisBe) 
    .limit(800) 
    .write('products.json'); 

계수의 값에 대한 작업 및 생성 된 JSON 파일에는 상태가 표시되지 않습니다. 내가 여기서 뭘 잘못하고 있는지 확실하지 않지만 모든 도움을 분명히 감사 할 것입니다.

감사합니다.

답변

0

.paginate('ul li:nth-child(3) [email protected]')을 사용해 보셨나요?

이렇게하면 세 번째 <li><ul>에옵니다.

+0

알려 주셔서 감사합니다. ('UL 리 : n 번째 아이 @의 HREF')는 '.paginate을 : 나는 이것을 시도' 그러나 나는 당신이 속성 값 ("@href")를 생략 한났습니다. 그 이유가 있습니까? 그냥 부드러운 알림, 링크가 즉시 (onClick)에 만들어집니다. – johnanish