웹 크롤러(WebCrawler)
웹의 크기가 폭발적으로 증가함에 따라 인터넷에서 정보를 얻는 수단으로 검색엔진의 존재는 매우 중요합니다. 검색엔진은 웹 페이지를 수집, 색인하여 검색 결과를 사용자에게 보여주는 역할을 담당합니다. 검색엔진의 근간이 되는 웹 크롤러는 인터넷상에 존재하는 웹 문서들을 추적하여 필요한 정보를 수집하는 기술을 말하며, 검색시스템, 전자상거래 상품검색, 인트라넷 검색 소프트웨어 등 현재 대부분 인터넷 산업의 근간이 되는 핵심 기술입니다.
또한 웹 크롤러는 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해 사용되기도 하며, 자동 이메일 수집과 같은 웹 페이지의 특정 형태의 정보를 수집하는 데도 사용됩니다.
웹 크롤러는 최초의 탐색을 위하여 시드(seed)라고 불리는 URL 리스트를 이용하여 탐색을 시작하며, 페이지 내에 존재하는 모든 하이퍼링크를 인식하여 URL리스트를 갱신하고, 갱신된 URL 리스트는 재귀적으로 다시 방문합니다.
웹 서버를 순회하며 각 홈페이지에 있는 텍스트 정보, 수치 정보, 사실 정보, 그림 정보, 멀티미디어 정보 등 수 많은 정보를 수집하며, 자동으로 웹 페이지의 내용을 분석하고 그 안의 포함되어 있는 URL들을 추출한 후 그 URL들로 하나씩 이동하면서 정보를 수집합니다.
웹 크롤러의 기본적인 요구사항으로 문서 수집 속도가 빠른 웹 크롤러가 가장 성능이 우수한 웹 크롤러라고 말할 수 있습니다. 속도를 향상시키기 위해서 멀티프로세스 (또는 멀티 쓰레드)를 사용합니다. 주의할 사항은 멀티프로세스가 같은 서버에 동시에 접속을 하게 되면 네트워크와 서버에 과부하를 발생시킬 수 있으므로 일정 시간 간격을 두고 접근하도록 통제를 해야 합니다.
'빅데이터 > 빅데이터 처리' 카테고리의 다른 글
복합 이벤트 처리(CEP, Complex Event Processing) (0) | 2017.08.03 |
---|---|
구독 형태의 데이터 수집 (0) | 2017.08.03 |
RDBMS를 통한 데이터 수집 (0) | 2017.08.03 |
R 프로젝트 (0) | 2017.08.03 |
얀(YARN) (0) | 2017.08.03 |