본문 바로가기

Development/Coding

node.js 로 구현한 국내 도메인 리스트 구하기

nodejs 로 랭키닷컴의 도메인 리스트를 불러오는 코드를 작성하였습니다.

우선 랭키에 등록된 22개의 카테고리 데이터는 누구나 볼 수 있도록 개방되어 있습니다. 카테고리의 데이터를 불러와 페이지 갯수를 알아내어 페이지 수 만큼 데이터를 받아 파일에 기록합니다.

처음에 페이지 갯수를 몰라 카테고리별 웹페이지를 통째로 읽어 특정 구문을 찾아 페이지 수를 찾아내었는데 페이지 수를 정확하게 얻을 수 없었습니다. 그래서 코드를 좀 더 보다보니 페이지 수에 해당하는 값이 페이지 데이터에 포함되어 있더군요.

nodejs 의 반복문은 기존 절차적 코딩으로 생각하면 조금 복잡하게 느껴집니다. 이런 류의 반복문에 대한 코딩은 아래의 패턴으로 해결하고 있습니다.


repeater(i) {
  if( i < length ) {
     asyncwork( function(){
       repeater( i + 1 )
     })
  }
}

repeater(0)


웹에 있는 데이터를 긁어오기 위해 restler 를 사용하였습니다. 웹에서 데이터를 불러오는 과정에서 가끔씩 오염된 데이터(json 이 아닌)가 오는 경우가 있었습니다.

이유는 너무 많은 호출 때문에 랭키 서버의 DB 서버에서 에러를 출력하는 경우였습니다.

그래서 웹 호출시 10초간의 여유를 두고 restler 를 사용하였습니다.

또한 파일로 내려받기 위해 파일을 생성하여 데이터를 받는대로 추가하는 과정이 있습니다. 사용하고 있는 nodejs 가 0.6 버전이라 0.8 에 생긴 파일 Append 함수를 사용할 수 없어서 구식 방법으로 코딩하였습니다.

깃헙에 코드를 올려두겠습니다.

https://gist.github.com/3741997

위 링크를 참고하세요




'Development > Coding' 카테고리의 다른 글

KCP 결제 모듈 적용기  (0) 2012.10.11
Jade 템플릿 사용시 IE 예외 처리  (0) 2012.09.19
node.js 파일 작업 팁  (0) 2012.09.18
DIV 안의 엘리먼트 세로 정렬  (0) 2012.03.09
PHPFog with SlimPHP 테스팅  (0) 2012.02.21