web-Robots.txt에 대한 가이드

Gom La·2023년 4월 17일
0

IT 지식

목록 보기
8/9
post-thumbnail
post-custom-banner

Web 사이트 파싱 하는 프로젝트를 진행하면서 크롤링을 접할 기회가 생겼는데, 크롤링을 할 때 주의할 점이 함부로 접근해서 무작위로 파싱 및 크롤링해 오는 것이 아니라 robots.txt라는 설정을 확인 후 접근이 허가가 되어 있는지 확인이 필요하다.

🔖 robots.txt란?

robots.txt는 검색 엔진 로봇에게 웹사이트를 어떻게 크롤링 해야 하는지 가이드를 주는 문서 파일이다. 가이드를 하면서 크롤러에게 URL의 어떤 경로에 접근이 가능한지 아닌지 알려주며 웹사이트의 로드맵 가이드를 하는 역할을 한다. robots.txt는 항상 사이트의 루트 폴더 또는 메인 디렉터리에 위치해야 하며 대부분 텍스트 파일로 설정이 되어 있다.

🔖 robots.txt 지시어 및 규칙

크롤링을 사용하는 개발자의 입장에서 접근이 허용되어 있는지 어느 정보까지 가져올 수 있는지 설정을 파악하기 위해선 robots.txt가 어떤 용어와 규칙이 있는지 알아야 한다. 쓰이는 용어를 이해한 뒤, 크롤링하기 위한 web site 도메인 주소에 /robots.txt를 입력하여 해당하는 파일을 가져올 수 있다.

[도메인 주소]/robots.txt

➤ robots.txt 지시어

  • user-agent : 규칙이 적용 되는 크롤러의 이름이다.
  • disallow : 유저 에이전트의 디렉터리 또는 페이지 크롤링을 차단한다.
  • allow : 유저 에이전트의 디렉토리 또는 페이지 크롤링을 허용한다. (구글 봇에만 적용 가능 하니 참고하길 바람)
  • sitemap : web site의 모든 리소스를 나열한 목록 파일
  • 크롤링 봇 이름 : Googlebot(구글), Yeti(네이버), Bingbot(빙), Slurp(야후)

➤ robots.txt 규칙

www.예시.com/robots.txt를 예시로 몇 가지의 규칙에 대해 알아보자.

🔖 크롤링 차단하기

사이트의 모든 콘텐츠를 크롤러로부터 차단하기 위한 설정이다.

robots.txt 크롤링 차단
user-agent: *
Disallow: /

user-agent는 크롤링 봇을 말하며 *표시가 된 것은 모든 크롤링 봇을 말한다.

Disallow는 페이지를 크롤링하지 않게 설정이며, /표시를 하면 크롤링을 차단할 수 있다.

위의 내용을 해석하면 모든 크롤링 못에게 www.예시. com & 포함한 모든 페이지의 크롤링을 차단한다는 뜻이다.

🔖 크롤링 허용하기

반대로 모든 크롤링 봇의 접근을 허용하는 설정이다.

robots.txt 크롤링 허용
user-agent:
Disallow:

이렇게 disallow에 /표시가 없으면 크롤링을 허락한다는 것을 나타낸다.

위의 내용을 해석하면 모든 크롤링 봇이 www.예시.com 를 포함한 모든 페이지의 크롤링을 허용한다는 뜻이다. 

🔖 특정 크롤러 차단하기 - 특정 폴더

특정 폴더를 크롤러로부터 차단하기 위한 설정이다.

robots.txt 크롤링 차단
user-agent: Googlebot
Disallow: /

Googlebot은 위에서 언급했듯이 구글의 크롤링 봇의 이름이다.

해당하는 크롤링 봇의 접근을 차단하고 싶다면 user-agen에 해당하는 크롤링 봇의 이름을 입력해 주고

특정 위치에만 크롤링 봇을 차단하고 싶다면 위치를 아래와 같이 선정할 수 있다.

robots.txt 크롤링 차단 - 특정 폴더
user-agent: Googlebot
Disallow: /api/scrap/parse

위와 같이 설정을 하게 되면 www.예시.com/api/scrap/parse/ 의 url이 포함된 페이지는 크롤링을 차단할 수 있다.

아래와 같이 여러 개의 디렉토리의 콘텐츠 크롤링 차단도 가능하다.

robots.txt 크롤링 차단 - 특정 폴더
user-agent: Googlebot
Disallow: /api/scrap/parse/
Disallow: /home/

🔖 특정 크롤러 차단하기 - 특정 웹페이지

크롤러가 특정 웹페이지를 액세스 못하게 차단할 수 있다.

robots.txt 크롤링 차단 - 특정 웹페이지
user-agent: Yeti
Disallow: /home/home.html

위의 내용을 해석하면 네이버 크롤러 Yeti가 www.예시. com/home/home.html의 특정 페이지를 크롤링으로 접근하지 못하게 차단한다는 뜻이다.

🔖 하나를 제외한 모든 크롤러 허용/차단하기

robots.txt 크롤링 차단 - 하나 제외한 모든 크롤러 허용
user-agent: Unnecessarybot
Disallow: /

user-agent: *
Allow: /

위의 내용을 해석하면 Unnecessarybot만 차단이 되며 나머지 크롤러 봇은 사이트에 접근할 수 있다는 뜻이다.

robots.txt 크롤링 차단 - 하나의 크롤러만 허용
user-agent: Googlebot-news
Allow: /

user-agent: *
Disallow: /

위의 내용을 해석하면 반대로 Googlebot-news만 허용이 되며 나머지 크롤러 못은 사이트에 접근이 차단된다는 뜻이다.

🔖 이미지 크롤링 차단

구글 이미지에서 특정 이미지의 크롤링을 차단하고 싶다면 구글 이미지 크롤러가 접근하지 못하게 설정해야 한다.

robots.txt - 이미지 크롤링 차단
user-agent: Googlebot-image
Disallow: /images/dogs.jpg

위의 내용을 해석한다면 Googlebot-image봇은 강아지와 관련된 이미지에 접근하여 크롤링하지 못한다는 뜻이다.

🔖 특정 문자열로 끝나는 URL 크롤링 차단

특정 문자열로 끝나는 URL을 차단하고 싶다면 $표시를 사용해야 한다.

robots.txt - 특정 문자열 URL 크롤링 차단
user-agent: Googlebot
Disallow: /*. git$

user-agent: Googlebot
Disallow: /*. xls$

. xls는 엑셀 링크를 뜻하고. gif는 GIF 파일을 의미하는데 크롤러 봇에 해당하는 파일들에 접근을 차단한다는 뜻이다.

🔖 robots.txt 설정하기

페이지에 robots.txt가 설정이 되어 있는지 모르는 경우에는 도메인/robots.txt를 마지막에 입력하여 확인해 보면 된다.

결과가 no.txt가 나온다면 설정이 되어 있지 않은 상태이다.

robots.txt를 설정하기 앞서 이 파일은 HTM파일이 아닌 일반 텍스트 파일로 작성해야 하고 루트 디렉터리에 위치해야 한다.

robots.txt를 만들기 위해서는 아래의 특징을 명심해야 한다.

1. 파일 이름은 robots.txt 파일이 있어야 한다.
2. 사이트 당 하나의 robots.txt파일이 있어야 한다.
3. 철자 오류가 있으면 안 된다.

위의 세 가지뿐 아니라 앞에서 설명된 지시어와 규칙을 염두하고 robots.txt를 만들어야 한다.

profile
인생 개발자 라곰!!
post-custom-banner

0개의 댓글