node.js 파충류 프레임워크 node-crawler 첫 체험
2665 단어 node.js파충류프레임node-crawler
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에 대한 더 많은 자료는 저희 다른 관련 글에 주목하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.