KOROMOON

착한 사마리아인이 되고 싶습니다.

7/24/2020

웹 크롤러 (Web Crawler)


( 1 ) 웹 크롤러 란?


방대한 웹 페이지를 두루두루 방문하여 각종 정보를 자동적으로 수집하는 일을 하는 프로그램으로서 검색 엔진의 근간임.
웹 크롤러에 대한 다른 용어로는 앤트(Ants), 자동인덱서(Automatic Indexers), 봇(Bots), 웜(Worms), 웹 스파이더(Web Spider), 웹 로봇(Web Robot) 등이 있음.
웹 크롤러가 하는 작업을 웹 크롤링(web crawling) 혹은 스파이더링(spidering)이라고 부름.



( 2 ) 웹 크롤러 기능

검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 항상 웹 크롤링을 하며 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는 데 사용됨.
또한 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해 사용되기도 하며 자동 이메일 수집과 같은 웹 페이지의 특정 형태의 정보를 수집하는데도 사용됨.
웹 크롤러는 봇이나 소프트웨어 에이전트의 한 형태로 대개 시드(Seed)라고 불리는 URL 리스트에서부터 시작하며 페이지의 모든 하이퍼링크를 인식 및 URL 리스트를 갱신하여 확인함.



( 3 ) 웹 크롤러 단점

웹 크롤러는 설계(프로그래밍)를 잘못하면 네트워크에 트래픽을 증가시키고 서버에 과부하를 줄 수 있음.
블로그나 카페 등에 게시한 개인정보까지 수집함.
게시한 글을 지우더라도 웹 크롤러가 수집하여 검색엔진 데이터베이스에 저장한 정보는 지워지지 않으며 나중에 다른 사용자가 검색할 수도 있음. (구글이나 네이버 등 검색 시 저장된 페이지 볼 수 있음)



( 4 ) Google Crawler 리스트

대표적인 웹 크롤러 중에 구글 크롤러를 확인함.
아래 표는 2020년 07월 24일 자 기준 구글에서 제공된 정보를 바탕으로 기재함.
링크 : 

크롤러

사용자 에이전트 토크

(제품 토큰)

전체 사용자 에이전트 문자열

APIs-Google

APIs-Google

APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)

애드센스

Mediapartners-Google

Mediapartners-Google

AdsBot 모바일 웹 Android

(Android 웹페이지 광고 품질 확인)

AdsBot-Google-Mobile

Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)

AdsBot 모바일 웹

(iPhone 웹페이지 광고 품질 확인)

AdsBot-Google-Mobile

Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)

AdsBot

(데스크톱 웹페이지 광고 품질 확인)

AdsBot-Google

AdsBot-Google(+http://www.google.com/adsbot.html)

Googlebot 이미지

- Googlebot-Image

- Googlebot

Googlebot-Image/1.0

Googlebot 뉴스

- Googlebot-News

- Googlebot

Googlebot-News

Googlebot 동영상

- Googlebot-Video

- Googlebot

Googlebot-Video/1.0

Googlebot

(데스크톱)

Googlebot

- Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

- Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z‡ Safari/537.36

 

또는(거의 사용되지 않음):

 

- Googlebot/2.1 (+http://www.google.com/bot.html)

Googlebot

(스마트폰)

Googlebot

Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z‡ Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

모바일 애드센스

Mediapartners-Google

(다양한 휴대기기 유형) (compatible; Mediapartners-Google/2.1; +http://www.google.com/bot.html)

모바일 앱 Android

(Android 앱 페이지 광고 품질 확인, AdsBot-Google 로봇 규칙 준수)

AdsBot-Google-Mobile-Apps

AdsBot-Google-Mobile-Apps

Feedfetcher

FeedFetcher-Google

robots.txt 규칙을 따르지 않음 - 이유

FeedFetcher-Google; (+http://www.google.com/feedfetcher.html)

Google Read Aloud

Google-Read-Aloud

robots.txt 규칙을 따르지 않음 - 이유

- 현재 에이전트 :

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36 (compatible; Google-Read-Aloud; +https://support.google.com/webmasters/answer/1061943)

- 이전 에이전트(사용 중지됨) :

google-speakr

Duplex on the Web

DuplexWeb-Google

* 사용자 에이전트 와일드 카드를 무시할 수 있음 - 이유

Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012; DuplexWeb-Google/1.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Mobile Safari/537.36

Google 파비콘

(다양한 서비스의 파비콘 검색)

Google 파비콘

사용자가 시작한 요청의 경우 robots.txt 규칙 무시

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)  Chrome/49.0.2623.75 Safari/537.36 Google Favicon

Web Light

googleweblight

robots.txt 규칙을 따르지 않음 - 이유

Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko; googleweblight) Chrome/38.0.1025.166 Mobile Safari/535.19


※ 위 표에서 사용자 에이전트의 ‡ Chrome/W.X.Y.Z
표에 있는 사용자 에이전트 문자열에 Chrome/W.X.Y.Z 문자열이 표시되는 경우 W.X.Y.Z는 사용자 에이전트가 사용하는 Chrome 브라우저의 버전을 나타냄(예: 41.0.2272.96). 이 버전 번호는 Googlebot이 사용하는 최신 Chromium 출시 버전과 일치하도록 시간이 지남에 따라 커짐.
이 패턴이 있는 사용자 에이전트를 위해 로그를 검색하거나 서버를 필터링하는 경우 정확한 버전 번호를 지정하기보다는 버전 번호에 와일드 카드를 사용하는 것이 좋음.



( 5 ) robots.txt 를 이용하여 웹 크롤러 차단 방법

User-Agent 명을 기재해서 사용하며 특정 폴더 및 전체 폴더에 대해서 차단 및 허용함.

Google 웹 검색에 대해 허용할 경우
User-agent: Googlebot
Disallow:

Google 웹 검색에 대해 전체 폴더 차단할 경우
User-agent: Googlebot
Disallow: /

Google 웹 검색에 대해 /board 폴더만 차단할 경우
User-agent: Googlebot
Disallow: /board

모든 웹 크롤러를 허용할 경우
User-agent: * 
Disallow: 

모든 웹 크롤러에 대해 특정 폴더만 차단할 경우
User-agent: * 
Disallow: /koromoon_photo/ 
Disallow: /koromoon_diary/

특정 웹 크롤러만 차단할 경우 (ex. koromoonbot)
User-agent: koromoonbot
Disallow: /

특정 웹 크롤러만 허용할 경우 (ex. koromoonbot)
User-agent: koromoonbot
Disallow:
User-agent: *
Disallow: /



( 6 ) Meta Tag 를 이용하여 웹 크롤러 차단 방법

특정 페이지에 대해서만 차단할 경우 Meta Tag 를 이용하여 차단함.

해당 페이지에 대해 Google 웹 검색을 차단할 경우
<meta name="robots" content="nofollow"><meta name="googlebot" content="noindex">



참고 사이트 : 



============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.

댓글 없음:

댓글 쓰기