node.js 파충류 프레임워크 node-crawler 첫 체험

바이두 파충류라는 단어는 일반적으로 나타나는python 관련 자료이다.
py에도 파충류 프레임이 많은데, 예를 들면 scrapy, Portia, Crawley 등이다.
이전에는 개인적으로 C#로 파충류를 만드는 것을 더 좋아했다.
nodejs에 익숙해지면서이런 일을 하는 데는 스크립트 언어가 훨씬 적합하다는 것을 발견했다. 적어도 그렇게 많은 실체류를 쓰지 않아도 된다.그리고 스크립트는 일반적으로 비교적 간단하게 사용된다.  
github에서 node+spider를 검색하면 1위는 node-crawler입니다.
github: https://github.com/bda-research/node-crawler
간편한 사용
npm 설치:

npm install crawler
new crawler 대상

var c = new Crawler({
 //  
 callback : function (error, res, done) {
  if(error){
   console.log(error);
  }else{
   var $ = res.$;
   // $   Cheerio  
   //  jQuery , jQuery DOM 
   console.log($("title").text());
  }
  done();
 }
});
그리고crawler 대기열에 끊임없이 URL을 추가하면 됩니다.

//  URL , 
c.queue('http://www.amazon.com');

//  URL 
c.queue(['http://www.google.com/','http://www.yahoo.com']);
제어 병발 속도
파충류 프레임워크는 일반적으로 여러 페이지를 동시에 올라가지만 속도가 너무 빠르면 목표 사이트의 파충류 메커니즘을 촉발하고 다른 사이트의 성능에도 영향을 미친다.
최대 동시 수량 제어

var c = new Crawler({
 //  10
 maxConnections : 1,

 callback : function (error, res, done) {
  if(error){
   console.log(error);
  }else{
   var $ = res.$;
   console.log($("title").text());
  }
  done();
 }
});
저속 모드 사용
매개 변수 rateLimit를 사용하여 느린 속도 모드를 사용하면 두 번의 요청 사이에rateLimit가 밀리초 동안 방치되고 maxConnections는 1로 강제로 수정됩니다.

var c = new Crawler({
 // `maxConnections`   1
 maxConnections : 10,

 //  1000ms
 rateLimit: 1000,

 callback : function (error, res, done) {
  if(error){
   console.log(error);
  }else{
   var $ = res.$;
   console.log($("title").text());
  }
  done();
 }
});
그림 등 정적 파일 다운로드

var c = new Crawler({
 encoding:null,
 jQuery:false,// set false to suppress warning message.
 callback:function(err, res, done){
  if(err){
   console.error(err.stack);
  }else{
   fs.createWriteStream(res.options.filename).write(res.body);
  }
  
  done();
 }
});

c.queue({
 uri:"https://nodejs.org/static/images/logos/nodejs-1920x1200.png",
 filename:"nodejs-1920x1200.png"
});
이상은 노드입니다.js 파충류 프레임워크 node-crawler 초기 체험에 대한 상세한 내용, 파충류 프레임워크 node-crawler에 대한 더 많은 자료는 저희 다른 관련 글에 주목하세요!

좋은 웹페이지 즐겨찾기