2013-08-09 5 views
1

PhantomJS를 사용하여 데이터를 스크래핑하고 nodejs XPath 및 DOM으로 결과를 구문 분석 한 다음 MySQL에 저장하는 방법이 있습니까?PhantomJs, Nodejs 및 MySQL 사용

PhantomJS 코어와 PhantomJS 노드 모듈을 모두 설치했지만 쉘 레벨에서 노드를 실행하여 스크래퍼를 실행 한 다음 cronjob을 설정하여 스케줄에 따라 실행합니다.

+2

네, 가능합니다, [Node.js를 함께 Phantom.JS 통합 모듈]가있다 (https : //로 github의를 .com/sgentle/phantomjs-node). 좀 더 구체적인 대답이 필요하면 좀 더 구체적인 질문을 할 필요가 있습니다. :) –

답변

2

나는 노드와 PhantomJS 사이에 다양한 브리지를 시도하고 또 다른 브리지를 작성했다. 그것은 phridge에게 전화를 PhantomJS에 기능을 전달하고 노드로 결과를 반환하는 방법을 제공하는 것 :

// node 
phantom.run("h1", function (selector, resolve) { 
    // this code runs inside PhantomJS 

    phantom.addCookie("cookie_name", "cookie_value", "localhost"); 

    var page = webpage.create(); 
    page.customHeaders = { 
     Referer: "http://google.com" 
    }; 
    page.settings = { 
     userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5)" 
    }; 
    page.open("http://www.google.com", function() { 
     var text = page.evaluate(function (selector) { 
      return document.querySelector(selector).innerText; 
     }, selector); 

     // resolve the promise and pass 'text' back to node 
     resolve(text); 
    }); 
}).then(function (text) { 
    // inside node again 
    console.log("The element contains the following text: "+ text); 
});