Robots.txt ? (크롤링과 규약)

컴퓨터/Python

728x90
반응형

서론

Python을 통해 Web에서 여러 데이터를 스크래핑하며 크롤링을 하기 위한 공부를 하던 과정 중 의문점이 하나 생겼다.

다양한 봇에 대한 이슈를 들어왔는데, 과연 프로그램을 이용한 무분별한 Web 데이터를 다루는 것은 문제가 되지 않는가?

이런 BOT들에 대한 문제는 윤리적, 도덕적 문제뿐 아니라, 서비스를 제공에 장애를 방생하는 요인이기도 합니다.

본문에서는 이 Web에서 데이터를 취득하는 프로그램들에 대한 규약을 알아보도록 하겠습니다.

 

한정적인 서비스 자원

Web은 인터넷을 통해 정보를 취득할 수 있는 오늘날 가장 대표적인 창구 중 하나입니다.

서비스를 제공하는 서버 측에서 다양한 클라이언트의 요청을 처리하는 방식으로 이루어져 있습니다.

손쉽게 정보를 찾고, 취득할 수 있게 되어있죠. 

 

대부분의 일반적인 사용자들은 웹브라우저와 검색엔진(구글, 네이버 등)을 통해 정보를 검색하고, 원하는 정보를 얻습니다.

만약 일반적인 사용자들이 특정 서비스를 제공하는 서버에 동시 다발적으로 서버의 허용치를 넘는 요청을 하게 되면 어떻게 될까?

 

서비스를 제공하는 서버 측의 자원은 한정적입니다. 이미 대다수의 사용자들은 서버의 자원이 한정적이라는 것을 경험해 봤습니다. 연말정산서비스나, 특정 서비스를 제공하는 이가 이벤트를 열어 한번에 많은 사용자들이 접속하게 되면 서버가 느려지거나, 원하는 서비스를 이용하지 못하는 경우가 발생합니다.

DDos 공격의 경우도 이와 같은 원리를 이용한 공격입니다.

 

즉, 서버의 자원은 한정적이며 서버의 역량 이상의 업무가 주어진다면 정상적인 동작이 불가능합니다.

그렇다면 수많은 Web BOT이 서버에 요청을 한다면 서버 측에서는 엄청난 부담으로 다가올 수 있습니다.

이런 이유로 많은 Web 서비스 제공자는 BOT의 사용을 제한하기 위한 규약을 제시하고 있습니다.

 

Robots.txt?

Web 서비스를 제공하는 사람들의 도메인에 /Robots.txt를 입력하면 BOT을 이용한 정보 수집에 대한 규약을 볼 수 있습니다.

다양한 크롤러들이 특정 웹 서비스를 이용하기 위한 권고사항을 지정해 둔 txt 파일로 크롤러를 제작하거나 사용하기 위해서는 가장 첫 번째로 robots.txt 파일을 확인해야 됩니다. 

 

이 포스트가 존재하는 티스토리의 robots.txt 파일을 확인해 보도록 합시다.

 

https://www.tistory.com/robots.txt

User-agent: *
Disallow: /m
Disallow: /login
Disallow: /gateway
Allow: /

위와 같은 txt문서를 확인할 수 있습니다.

우선 간단하게 해당 문서를 읽어보자면 다음과 같습니다.

  • User-agent : * - 모든 BOT을 사용할 수 있다.
  • Allow : 허용되는 url 항목
  • Disallow : 허용되지 않는 url 항목

즉 해당 url(https://tistory.com 이하 하위 도메인 주소에서의 BOT의 접근 허용을 나타냅니다.

 

항상 스크래핑,크롤링등을 하기 위한 BOT의 설계 전에 접근하고자 하는 서비스의 BOT규약을 꼭 이해하고 접근하여 사용하도록 습관화합시다.

 

 

 

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :