게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
JavaScript 질문하나 드립니다.
게시물ID : programmer_14949짧은주소 복사하기
작성자 : 쵸콧똥
추천 : 0
조회수 : 782회
댓글수 : 1개
등록시간 : 2015/12/12 23:49:51
옵션
  • 베스트금지
  • 본인삭제금지
JavaScript로 Web Scrapper를 하나 만드는 중입니다.
일단 다른 언어보다 접근이 쉬울것 같아서 공부할겸 만들고있었는대...

한번에 많은 페이지를 읽어오니 순서가 자기 마음대로 읽어오더군요.
이리 저리 알아보니, JavaScript의 특성이 비동기성이라고 하더라구요.

그래서 질문하나 드립니다.

100개 이상의 페이지를 불러와 분석하여 특정데이터를 뽑아내는대,
이게 순서대로 안돼니, 아직 request는 받지도 않았는대, 코드는 받았다고 생각하고 진행해서 문제가 생기더라구요.

그래서 동기화 시켜서 할수있는 방법이 있을까요?
(검색해보니 callback함수를 이용하라는대.. 아직도 이넘이 이해가 안가네요..단순히 큐에 이벤트를 쌓아뒀다가 하는것 같기도 하고...흐..)

var request = require("request");
var cheerio = require("cheerio");
var fs = require("fs");
var mkdir = require("mkdir");
var path = require('path');
var async = require('async');
var downloader = require('./downloader');
var mkdirp = require('mkdirp');


var preHttp = "파싱할 사이트";
var innerHttp;

var startPage = 1;
var endPage = 50;
var task1 = [];

for (var i = startPage; i <= endPage; i++) {
innerHttp = i.toString(10);
var url = preHttp + innerHttp;
mkdirp('./' + i, function(err) { 
});
request({
  url: url,
}, function(error, response, body) {
  var $ = cheerio.load(body);
// 파싱과 작업
...
});
});
}

이런식으로 짯는대.. 어떻게 변경하면 좋을지 도와좀 주시면 감사하겠습니다.
다들 즐거운 주말 보내세요 ^^
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호