길이 이야기(Giri's Story)

검색로봇, 웹수집기 - 어떤 크롤러들이 내 홈페이지에 들어올까? 본문

IT기술,개발/웹프로그래밍

검색로봇, 웹수집기 - 어떤 크롤러들이 내 홈페이지에 들어올까?

길이 2009. 4. 7. 13:13

사용자 삽입 이미지

페이지나 개인 블로그를 운영하는 사람이라면 누구나 한번쯤 어떻게 포털이나 검색사이트에 내 포스팅이나 글들이 검색되는 것일까 궁금해 본적이 있을 것이다.

물론 블로그의 경우 RSS란 공개된 정보를 수집하는 메타블로그사이트에 의해 수집되는 경우도 많은데
블로그의 RSS 데이터가 없는 일반 사이트의 경우는 어떻게 수집되는 것일까?



검색로봇, 검색엔진~이라는 용어를 한번쯤을 들어보았을 것이다.

검색엔진
이라는 용어는.. 수집기의 개념이 아닌... 수집이 완료된 정보를 사용자가 검색했을 경우 어떻게 효율적으로 결과를 보여줘야 하는지에 포커스가 맞춰져 있고...

오늘 이야기할 검색로봇, 웹수집기, 웹크롤러(WebCrawler) 라는 놈에 대해서 살펴보기로 하자.
검색로봇은 쉽게 이야기하면 이 드넓은 인터넷 공간을 무한정 돌아다니며 정보들을 수집하고 또는 판별하고, 정리하는 역할을 하는 일종의 정보수집 프로그램이다.

로봇이라는 단어는 마치 물리적인 기계처럼 머리와 팔, 다리가 달린 만화영화의 로봇으로 오해를 불러올 수도 있지만... 어차피 소프트웨어가 실행되기 위해서는 서버 시스템과 같은 컴퓨터 장치가 필요하기 때문에 로봇이라는 용어도 틀린말은 아니다.


우리가 알고 있는 네이버, 다음, 야후, 구글과 같은 대형 사이트도 인터넷의 정보를 수집하기 위해 웹크롤러를 사용하고 있는데... 웹크롤러에 의해 수집된 정보를 가공하여 검색결과에 사용한다.

웹크롤러의 성능은 시간당 수집하는 문서의 양에 따라 판단하는데 보통 수집기의 성능은 486 PC를 기준으로 시간당 1,000여개의 문서를 인덱싱 할 수 있다고 한다. 물론 특수한 목적으로 사용되는 크롤러들은 성능이 다를 수 있다.



자~ 웹크롤러에 대해서는 이정도로 알아봤고... 대체 어떻게 작동되는 것일까?

웹은 일반적으로 TEXT(HTML)문서로 정보가 저장되어 있다.
대부분의 HTML 문서에는 <a href='' ...>페이지 보기</a> 와 같이 페이지의 입구를 알려주는 Anchor 태그들을 가지고 있는데, 다른용어로 링크라고도 부른다. 웹크롤러는 이 <a> 태그를 따라 다닌다.

가령 "길이 이야기" 홈페이지의 입구를 'home' 이라고 하고...
그 하위에 1-소개, 2-게시판, 3-블로그, 4-별자리, 5-방명록. 과 같은 페이지들이 각각의 메뉴와 연결되어 있다고 가정하자.

크롤러는 외부사이트에서 연결된 "길이 이야기"라는 링크를 따라 길이 이야기 사이트의 home 입구로 들어온다. home 으로 들어온 크롤러는 페이지를 분석하여 정보가 될만한 text를 분석하고... 이기서 쓸만한 데이터가 있다면 index 서버에 수집한 정보와 함께 현재의 위치 URL을 저장한다.

그리고 home 에 연결된 1, 2, 3, 4, 5페이지를 방문하여 또 각각의 정보를 수집/저장... 이때 내부의 다른 문서들까지 모두 수집하거나 외부로 연결된 <a>태그를 찾아내 외부 사이트 빠져나간다.

문서의 정보를 저장하고 신뢰도를 평가할때의 기준은 많은 문서들 가운데, 외부에서 내부를 가르키는 링크가 많을때 신뢰도 높은 문서로 인정하게 되는데...
가령.. 웹페이지나 사이트를 새로 만들경우 내부에서만 링크가 한정되어 있고, 외부 사이트에서 참조해주는 링크가 없다면 페이지의 신뢰도는 낮게 책정하게된다. 그래서 사이트를 새로개설하거나 새로만든 페이지의 경우 검색사이트의 검색결과에 잘 나타나지 않는 이유가 바로 이때문이다.
반대로 내부사이트가 아닌 외부사이트의 많은 문서들이 내부의 문서를 링크시켜두었다면 ... 문서의 신뢰도는 높게 평가한다. 그만큼 유용한 정보이거나 신뢰도가 높아서 외부에서 링크를 걸어놓았다고 판단하기 때문이다.

물론 문서의 신뢰도를 판단하는 기준은 위에서 이야기한 한가지 방법론만 있는 것은 아니다.
검색을 많이 했거나, 나온 검색결과에서 사람들이 자주 방문하는지.. 또는 공신력이 있는 사이트에서 링크가 걸려있는지 등의... 아주 많은 기준이 사용된다.


...

자 그렇다면 정말 내 홈페이지에 검색로봇들이 방문하고 있을까?
아주 간단한 프로그램을 통해 검색로봇이 방문하고 있는지 살펴볼 수 있다.

방법은 간단하다. 웹크롤러를 위한 덫을 만들어 놓으면 된다.

사람들이 사이트를 접근하는 방식은 눈에 보이는 링크를 따라 마우스를 클릭해서 들어오게되지만,
웹크롤러의 경우는 눈으로 보이는 링크가 아니라 단순히 <a> 링크를 따라 들어오기때문에
눈에 보이지는 않지만 문서 속에 링크를 숨겨두면 일반적인 문서로 오인하고 접근을 시도한다.

링크의 제목을 흰색으로 처리하거나 점과 같은 작은 글씨로 링크를 걸어주면 아주쉽게 웹크롤러용 함정을 만들 수 있다. 아래는 덫에 걸린 웹크롤러들이다. 아마도 들어왔다가 문서가 아닌걸 알고.. 적잖히 당황했을 것이다. ^^;;

------------------------
번호 brow IP 날짜
------------------------
25 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 72.30.87.107 2009-04-06 16:29
24 Mozilla/5.0 (compatible; WebDataCentreBot/1.0; +http://WebDataCentre.com/) 66.150.224.245 2009-04-06 9:40
23 Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp) 114.111.36.24 2009-04-06 6:45
22 Mozilla/5.0 (compatible; MSIE or Firefox mutant; not on Windows server; +http://ws.daum.net/aboutWebSearch.html) Daumoa/2.0 116.125.142.172 2009-04-06 2:49
21 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 66.249.70.83 2009-04-06 2:40
20 Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp) 114.111.36.24 2009-04-06 1:38
19 Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) 67.195.37.116 2009-04-06 1:27
18 Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html) 38.99.44.105 2009-04-05 10:55
17 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 67.195.37.116 2009-04-05 10:51
16 Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) 83.233.165.149 2009-04-05 5:29
15 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 66.249.70.83 2009-04-05 1:41
14 Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp) 114.111.36.24 2009-04-05 1:36
13 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 67.195.37.116 2009-04-04 9:42
12 Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp) 114.111.36.24 2009-04-04 6:49
11 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 72.30.87.107 2009-04-04 6:39
10 Mozilla/5.0 (compatible; MSIE or Firefox mutant; not on Windows server; +http://ws.daum.net/aboutWebSearch.html) Daumoa/2.0 116.125.142.177 2009-04-04 5:12
9 Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp) 114.111.36.24 2009-04-04 1:37
8 Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) 67.195.37.116 2009-04-04 0:03
7 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) 92.48.112.99 2009-04-03 13:23
6 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 67.195.37.120 2009-04-03 10:43
5 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 66.249.70.83 2009-04-03 2:42
4 Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp) 114.111.36.24 2009-04-03 1:35
3 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 72.30.87.107 2009-04-03 0:51
2 Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) 67.195.37.120 2009-04-03 0:01
------------------------


이렇게 4일간 수집을 해본 결과 여러회사들의 웹크롤러들이 활동하고 있는 것을 볼 수 있다.
Yahoo, Daum, Naver, Google, webdatacenter, cuil.. 모두 수집된 검색결과를 가지고 검색서비스를 제공하거나 데이터를 가공하고 있는 곳이다.

자~ 이렇게 웹에서는 웹크롤러들이 활동하고 있고... 이 크롤러들 덕분에 검색사이트의 결과에서 내 사이트가 검색이 되는 것이다.

오늘 포스팅은 여기서 끝~~ ^^

Comments