2011-10-18 3 views
2

Windows에서 jsdom (node.js 모듈)을 작동 시키려고합니다. 내 노드 버전에 대해 작성하지 않는 것에 대해 불평을 계속합니다.Windows에서 웹 사이트를 긁어 내기 위해 node.js 사용

리눅스 시스템에 노드가 설치되어 (노드와 동일한 버전, 0.5.9, 소스에서 0.5.9) 노드가 있습니다. 는 난 ... 아직

없는 이동 (node_modules 아래) 윈도우 머신에

어떤 아이디어를 복사? 또는 HTML을 구문 분석하기위한 다른 권장 사항 노드에서 작성한 요청에 대한 응답으로부터 얻을 수 있습니까?

jsdom을 통해 jquery를 사용하는 것이 좋았을 것입니다.

건배.

답변

0

정확히 무엇을 하려는지 확실하지 않지만 청구서에 부합 할 수있는 node.io has a scraping framework입니다.

+0

덕분에, 나뿐만 아니라 이것 좀 봐 것입니다. – Shh

+0

아니요. 어떤 모듈인지 알지 못해도 빠진 모듈에 대해 불평합니다. – Shh

+0

Windows를 사용하는 경우 package.js 파일을보고 종속성을 해결하는 데 필요한 모듈을 수동으로 다운로드해야합니다. 또는 Windows에서 npm의 시험 버전을 사용해보고 npm install ([readme 확인] (http://npmjs.org/doc/README.html)) 할 수 있습니다. – hross

1

node.js가 절대적으로 필요하지 않은 경우 동료 인 SO-ist @nrabinowitz가 pjscrape을 확인하십시오. 테스트를 거쳐 입증되었습니다.

또한 node-scraper이 222 명의 관찰자와 11 개의 포크로 작업에 적합한 도구로 보입니다. 유스 케이스는 readme 또는 right here on SO에서 찾을 수 있습니다.

+0

감사합니다. 나는 그것을 조사 할 것이다. – Shh

+0

OK, 확인했습니다. 안돼. 노드 - 스크래퍼는 contextify가 필요합니다, 동일한 오류 – Shh

+0

나는 contextified가 설치되어 있다고 가정합니다. – vzwick

1

jsdom (> = 0.2.3)은 현재 Windows에서 잘 작동하지 않는 C++ 애드온이 필요하다고 말한 것에 대해 유감스럽게 생각합니다. 최선의 방법은 [email protected]을 설치하고 jsdom의 창 컨텍스트에서 javascript를 실행하여 메모리 누수를 해결하는 것입니다.

해결 방법은 다음과 같습니다 : DOM

    • 산란 새로운 프로세스가 창을 다시 사용 의도 멀리 C++ 추가 기능에서 이동하는 것입니다 document.body.innerHTML = '..new markup..';

    의 방법으로 DOM을 교체 그러나 불행하게도 그것은 현재로서는 가능하지 않습니다.

  • 0

    난 그냥 Node.js를 모듈 힘내라와 함께 연주하고, jsdom에 비해 봤는데, 그건 :

    • 훨씬 빠르고 훨씬 더 쉽게
    • 설치
    • 훨씬 더 탄력 브로큰 HTML (jsdom과 비교)
    • 그리고 서버 측에서 사용할 대부분의 jQuery 함수를 제공합니다.

    http://matthewmueller.github.com/cheerio/


    긁어 예 :

    var request = require('request'), 
        cheerio = require('cheerio'); 
    
    request('http://encosia.com', function(error, response, body) { 
    
        // Hand the HTML response off to Cheerio and assign that to 
        // a local $ variable to provide familiar jQuery syntax. 
        var $ = cheerio.load(body); 
    
        // Exactly the same code that we used in the browser before: 
        $('h2').each(function() { 
         console.log($(this).text()); 
        }); 
    
    }); 
    
    관련 문제