2011-04-05 10 views
13

자바 스크립트 웹 크롤러 프레임 워크가 있습니까?거기에 어떤 자바 스크립트 웹 크롤러 프레임 워크입니까

+0

당신은 더 구체적 수 :

테스트 스위트에서

, 여기에 뉴욕 타임즈 웹 사이트를 크롤링의 예? 자바 스크립트로 구현 된 웹 크롤러를 찾고 계십니까? 서버 측 (Node.js) 또는 클라이언트 측 (브라우저에서)? –

+4

클라이언트 측 웹 크롤러 프레임 워크가 있습니까? 어떻게 작동할까요? – Shakakai

+0

서버 측 자바 스크립트를 사용하여 세 개의 API를 작성했습니다. 'nodejs'는'python'처럼 쉽게 명령 줄에서 실행할 수 있습니다. 이것은 완전히 유효한 질문입니다. – slezica

답변

8

PhantomJS을 사용해보십시오. 정확하게 크롤러는 아니지만 그 목적으로 쉽게 사용할 수 있습니다. 스크린 샷을 저장할 수있는 기능이있는 완전한 기능의 WebKit 엔진이 있습니다. 간단한 명령 줄 JS 인터프리터로 작동합니다.

1

서버 쪽?

시도 노드 - 크롤러는 : https://github.com/joshfire/node-crawler

+0

후속 uri를 크롤링하지 않기 때문에이 크롤러는 고려하지 않을 것입니다. 기본적으로 URL의 소스를 다운로드하고 완료되면 콜백을 트리거합니다. 해당 페이지에 제공된 링크를 크롤링하기위한 논리를 정의하는 것은 소비자의 몫입니다. 그다지 간단하지는 않습니다. –

10

새로운 바로 Node.js를 위해 출시 된 프레임 워크 spider라고있다. 내부적으로 jQuery를 사용하여 웹 사이트의 HTML 페이지를 크롤링/색인화합니다. API 및 구성은 특히 jQuery를 이미 알고있는 경우에 특히 유용합니다.

var spider = require('../main'); 

spider() 
    .route('www.nytimes.com', '/pages/dining/index.html', function (window, $) { 
    $('a').spider(); 
    }) 
    .route('travel.nytimes.com', '*', function (window, $) { 
    $('a').spider(); 
    if (this.fromCache) return; 

    var article = { title: $('nyt_headline').text(), articleBody: '', photos: [] } 
    article.body = '' 
    $('div.articleBody').each(function() { 
     article.body += this.outerHTML; 
    }) 
    $('div#abColumn img').each(function() { 
     var p = $(this).attr('src'); 
     if (p.indexOf('ADS') === -1) { 
     article.photos.push(p); 
     } 
    }) 
    console.log(article); 
    }) 
    .route('dinersjournal.blogs.nytimes.com', '*', function (window, $) { 
    var article = {title: $('h1.entry-title').text()} 
    console.log($('div.entry-content').html()) 
    }) 
    .get('http://www.nytimes.com/pages/dining/index.html') 
    .log('info') 
    ; 
+0

스파이더가 작동하도록 아침을 보내면 최신 0.6.6 node.js에서 실행할 수 없습니다. – Kuroro

+0

좋은 시작이지만 메타 리디렉션이나 문서 기본 재정의를 처리하지 못해 많은 사이트를 크롤링하지 못합니다. 하지만 그것은 노드에서 본 최고의 구현입니다. 쿠키 지원으로 다른 오픈 소스 크롤러보다 낫습니다. –

관련 문제