Web Crawler
필자의 소견으로는 인공지능이 향후 가장 잘 이용될 수 있는 부분 중 하나의 광대한 인터넷에 널러있는 정보들을 활용하는 것이 아닐까 라는 생각을 한다. 그래서 우연히 웹 크롤러(Web Crawler)에 관심이 생기기 시작했다. 하지만 역시 웹 크롤러에도 여러 가지 어려움이 있다.
웹 크롤러란
조직적, 자동화된 방법으로 인터넷을 탐색하는 컴퓨터 프로그램의 일종으로 주로 웹 검색 엔진들의 검색 효율을 높이기 위해 사용된다. 가령 사용자가 검색어 질의를 요청할 때 실제 인터넷 페이지들을 검색하는 것이 아니고, 웹 크롤러가 미리 구축한 정보(인덱스라고 함)들을 대상으로 검색하는 것이다. 미리 구축한 정보에 따라 검색의 질에 좌우될 수 있기에 웹 크롤러는 대단히 중요한 기술 중 하나이다.
웹 크롤러의 어려움
- 방대한 인터넷 데이터 크기 : 워낙 인터넷의 크기가 방대하기에 웹 크롤러가 인터넷을 떠돌아 다니면서 인덱스 할 수 있는 범위도 제한적이다. 이는 웹 크롤러의 성능에 좌우된다.
- 인터넷 업데이트 속도
- 서버 스크립트 등에 인한 동적 페이지 생성 : 웹 크롤러가 크롤링할 수 있는 웹 페이지는 주로 정적 페이지와 일부 동적 페이지에 해당한다. 예로 전체 인터넷 페이지 중 40% 정도의 웹 페이지를 크롤링 할 수 있는 우수하다고 할 수 있다.
웹 크롤러의 전략 (policy)
웹 크롤러에는 몇 가지 중요한 전략들이 있으며 이런 것들은 웹 크롤러의 주요한 속성으로 작용한다.
- selection policy : 다운로드할 웹 페이지를 선택하는 전략
- re-visit policy : 웹 페이지가 갱신되어 있는지를 확인하는 전략
- politeness policy : 웹 사이트의 부하를 줄이거나 최소화하는 하는 전략
- 웹 크롤러는 웹 서버 URL에 접속하여 웹 데이터들을 다운로드 받아 해석하고 인덱싱하는 모듈이기에 분명한 것은 서버에 부하가 걸림
- 따라서 웹 크롤러를 마구잡이로 사용하면 분명히 서버에 악영향을 끼칠 수 있기에, 서버단에서 robots exclusion protocol을 사용하여 웹 크롤러가 접근을 하지 않기를 권장하는 방식이 생김 (그렇다고 하더라고 웹 크롤러가 기능적으로 서버단에 접속을 못하는 것은 아님, 다만 웹 소사이어티에서의 약속 정도)
- 병행 : 분산된 웹 크롤러를 어떻게 활용할 것인가에 대한 전략
Recent Comments