2009/04/07 13:13

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

크리에이티브 커먼즈 라이선스
Creative Commons License

사용자 삽입 이미지

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

물론 블로그의 경우 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.. 모두 수집된 검색결과를 가지고 검색서비스를 제공하거나 데이터를 가공하고 있는 곳이다.

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

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


Trackback 1 Comment 17
  1. Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/04/07 13:01 address edit & del reply

    사진은 모도넛회사의 초코크롤러.. ㅋㅋㅋ

  2. 컴도사 2009/04/08 01:57 address edit & del reply

    잘 배우고갑니다. 좋은 읽을거리 감사합니다.

    • Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/04/08 12:19 address edit & del

      ㅎㅎㅎ 뭘요.. 혹시나 틀린부분이 있다면 지적해주셔두 되요.. 감사합니다.

  3. 마린보이 2009/04/22 13:26 address edit & del reply

    잘 배우고 나가요.

    • Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/04/22 17:23 address edit & del

      ^^ 감사합니다.

  4. 감사합니다 2009/05/02 16:04 address edit & del reply

    감사합니다~!~

    • Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/05/05 06:08 address edit & del

      넵~ 저도 감사~ ^^

  5. A 2009/06/07 13:17 address edit & del reply

    저도 수집로봇이 궁금했는데 이곳에서 자세히 보고 가네요^^ 잘보고 갑니다

    • Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/06/07 22:08 address edit & del

      감사합니다. 도움이 되셨다니 다행이네요. ^^

  6. 광태 2009/06/22 22:02 address edit & del reply

    재미있게 읽고 갑니다. 원하던 내용은 아니었지만, 대략 어떤 것인지 알겠습니다. 혹 이런건 어떤 방법으로 가능할지 묻고 싶네요. 다름이 아니라 네이버의 뉴스 중에서 특정 키워드의 검색 결과를 수집하고자 하는데요. 뭐 거창한건 아니고 기사들의 링크만 텍스트파일이나 엑셀로 저장할 수 있는 방법이 있을까요? 워낙 방대한 양이라서 며칠 했더니 오른손에 마비가 올것 같네요. 자동으로 수집할 수는 없을까 궁금하네요.

    그럼 즐거운 하루되세요.

    • Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/06/23 03:09 address edit & del

      웹프로그램이나 어플리케이션을 통해 파싱하시면 원하는 결과물을 얻을 수 있을 것 같습니다. 물론 말씀하신 부분에 대한 전문 프로그램은 없으므로 직접 프로그래밍이 가능해야겠죠.

      네이버 개발자센터의 OPEN API 중 뉴스검색API를 이용하시면 좋을 것 같네요.
      http://dev.naver.com/openapi/apis/search/news

      원하는 키워드를 통해 XML형식의 결과물을 제공합니다.
      네이버 뉴스검색 API의 경우 실제 언론사 링크가 아니라 중간에 네이버의 링크변환 프로그램으로 한번 연결된 후 언론사페이지로 이동됩니다.
      실제 언론사의 링크가 필요하시다면 네이버API로는 불가능할 듯하네요.

      그리고 기존의 뉴스검색 결과뿐만 아니라 구글의 뉴스검색 알리미 기능에 키워드를 등록해 놓으시면 해당검색어가 들어간 뉴스를 메일로 쉽게 수집할 수 있습니다. 도움이 되셨길 바랍니다.

  7. Favicon of http://maindriver.tistory.com BlogIcon to day 2009/07/03 00:36 address edit & del reply

    쿠키 먹으로 왔는데..
    글 잘 보았습니다.. 저그 블로그에서도 적용 할수 있을가요..

    • Favicon of http://www.giristory.net/blog BlogIcon 길이 2009/07/03 00:58 address edit & del

      ^^ 크롤러 함정을 말씀하시는건가요? 안타깝지만 서비스용으로 만든게 아니라 임시로 만든 프로그램이라 전달해드려도 사용하실 수가 없답니다. db도 맞추셔야 하고... 유입봇의 종류와 로그확인용 프로그램이라 사용하셔두 아무런 의미가 없는 프로그램이랍니다. ^^

  8. 아따라 2009/08/03 12:11 address edit & del reply

    SEO 최적화 작업에 대해서 연구하다가 들렀네요...
    좋은 글 잘보고 갑니다...

    마지막 사진이 넘흐 귀여워서.....댓글 안남길수가 엄네요.

    • Favicon of http://blog.giristory.net BlogIcon 길이 2009/08/03 14:06 address edit & del

      오호~ 강아지사진이 의외로 효과가 좋은걸요? 좋은 성과 기재할께요~ ^^

  9. 요, 2010/11/16 03:48 address edit & del reply

    쉽게 설명해주는 곳이 없어 이해하기 힘들었는데, 배우고 갑니다~

  10. 용쓰 2011/10/06 00:33 address edit & del reply

    좋은 글 보고 갑니다.
    이쪽으로 관심이 있었는데 공부가 되었네요^^
    감사합니다.