수집 엔진(크롤러)의 동적 수집 주기

발생일: 2009.12.30

문제:
이번 프로젝트에서는 S모 사에서 수집해준 데이터를 받아온다.
교육 과정에서 들은 이야기인데,
이 업체에서 만든 수집 엔진(웹 크롤러)는
문서의 수집 주기를 (인공지능이라고까지 하기는 뭐하고) 동적으로 설정한다고 한다.

어떤 방법일까?

해결책:
일단 최초 수집 시에는 기본 설정 단위 기간 (대략 5분 정도) 으로 같은 페이지에 접근해 수집한다.
(IP 차단 등 블러킹에 대한 예외는 없다고 가정한다)

이후, 일정 시도만큼의 수집이 종료된 후에,
추가 수집된 데이터의 양을 고려해 최적화된 수집 주기를 설정하게 된다.

예를 들어, A 사이트에서 최근 5분 이내에 수집된 평균 데이터가 많을 경우 그에 따라 수집 주기를 단축하고,
수집된 평균 데이터가 수 건 정도라면 수집 주기를 늘리는 식이다.

주기적으로 계속 수집 주기를 변경하면서 최적화된 수집 주기를 찾아가는 거다.

잠깐 생각해봤을 때,...
최근 평균 수집 데이터 건수 / 평균 수집 건수 정의 / 수집 주기 / 수집 건수 기준 / 단위 기간

등을 고려해 봐야할 것 같다.


쉽게 이해할 수 있는 개념이지만, 아이디어가 좋아 메모해둔다.

이런 최적화 로직은 여러 모로 유용할 것 같단 생각이 든다.



#그 외 참고.

    자바 웹크롤러(Java Web Crawler) 구현시 고려사항 들..

개인이 간단히 크롤러를 구현해보고 느낀 고려 사항들을 정리해둔 포스트이다.
직접 구현해보지 않은 사람들이 읽기에도 공감할 수 있도록 고려할 점들을 쉽게 설명해뒀다.

본문 내에 있는 스레드풀 구현 예제에 대한 링크가 좋다. 함께 참고해보자.



제목처럼 대용량 검색 엔진을 위한 병렬 웹 크롤러 구현에 대한 논문이다.
여러 대의 머신을 이용하여 대량의 웹 페이지를 빠르게 수집하기 위한 아키텍처와 모델에 대해 설명되어 있다.
링크에 대한 중요도 설정과 중복 제거에 대한 알고리즘 등도 있는데 사실 잘 이해가 되진 않는다.^^;

* DBPIA 라는 학술 논문 사이트인 것 같은데, 회사 IP라 기관 회원이라 해당 파일에 대한 원문 조회가 되는 모양이다.





카테고리

분류 전체보기 (711)
About me. (6)
Daylogs (676)
영어공부 (0)
My works - 추억 (29)
비공개 (0)