본문 바로가기

IT

웹 크롤링(web crawling)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


크롤링(crawling) 혹은 스크래이핑(scraping)은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위이다. 크롤링하는 소프트웨어는 크롤러(crawler)라고 부른다.



웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다. 웹 크롤러에 대한 다른 용어로는 앤트(ants), 자동 인덱서(automatic indexers), 봇(bots), 웜(worms), 웹 스파이더(web spider), 웹 로봇(web robot) 등이 있다.

웹 크롤러가 하는 작업을 웹 크롤링(web crawling) 혹은 스파이더링(spidering)이라 부른다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹 크롤링한다.

웹 크롤러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는 데 사용되며, 검색 엔진은 이렇게 생성된 페이지를 보다 빠른 검색을 위해 인덱싱한다. 또한 크롤러는 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해 사용되기도 하며, 자동 이메일 수집과 같은 웹 페이지의 특정 형태의 정보를 수집하는 데도 사용된다.

웹 크롤러는 봇이나 소프트웨어 에이전트의 한 형태이다. 웹 크롤러는 대개 시드(seeds)라고 불리는 URL 리스트에서부터 시작하는데, 페이지의 모든 하이퍼링크를 인식하여 URL 리스트를 갱신한다. 갱신된 URL 리스트는 재귀적으로 다시 방문한다.

따라서 블러그를 다른 사람은 크롤링이 잘 될 수 있도록 검색엔진에 등록하는 것이 바람직하다 할 수 있겠습니다.

특히 수익 창출을 목표로 하는 블러그 분들에겐 필수 사항이겠죠.

만약 블러그를 다른 사람에게 보이지 않게 하기 위해서는 크롤링이 안되게 하면 되는데 이때 활용하는 것이 robots.txt 입니다.

이제 robots.txt 를 알아보겠습니다.


웹 사이트에 봇이 접근하는 것을 방지하는 것을 로봇 배제 표준이라 하고, 접근 제한에 대한 설명을 기술한 것이 robots.txt 입니다.

한 마디로 웹 사이트에 제한을 두어 특정 봇이 할 수 있는 것을 제한 합니다. 접근을 막거나, 허락하거나, 특정 디렉터리를 정해 접근을 막는 다던가.. 하지만 설정해 놓아도 접근 할 수 있습니다.

또한 robots.txt 는 항상 도메인의 root에 위치해야 합니다. (Windows = C:/inetpub/wwwroot/, Linux = /var/www)

robots.txt 를 확인하려면 간단하게 URL 뒤에 /robots.txt 를 입력하면 됩니다.

예시)

User-agent: *

Disallow: /owner

Disallow: /admin

Disallow: /oldadmin

Disallow: /search

Disallow: /m/search

Disallow: /m/admin

Allow: /

User-agent: Mediapartners-Google

Allow: /

User-agent 부분에는 해당 봇을 쓰면 되는데 와일드 카드 문자'*'를 쓰게 되면 모든 봇이 됩니다.

구글로봇: Googlebot

구글 이미지: googlebot-image

구글 모바일: googlebot-mobile

야후로봇: Slurp, yahoo-slurp

야후 이미지: Yahoo-MMCrawler

네이버: cowbot, naverbot, yeti

다음: daumos

그 밑에 Disallow 라고 되어있는데 이는 접근 차단으로 보면 됩니다. Allow는 접근 허락, 위의 구문은 모든 봇에게 /owner, /admin, /oldadmin, /search, /m/search, /m/admin 을 접근 차단 하고 그 외의 디렉터리는 접근 허락을 한다는 뜻 입니다.

두 번째는 Mediapartners-Google 봇에게 모든 디렉터리를 접근 허락한다는 뜻입니다.

만약 Disallow: 에 공백이 있으면 이는 해당 봇이 사이트를 크롤링할 수 있다는 뜻 입니다.

검색 엔진에 따라 제한이 다르겠지만, Allow, Disallow 에도 특수 문자를 사용할 수 있는 경우가 종종 있습니다. 해당 봇의 제한 사항을 알고, 활용할 수 도 있습니다.

 

참고사이트

https://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC

https://namu.wiki/w/%ED%81%AC%EB%A1%A4%EB%A7%81

http://blog.skbroadband.com/652