클론코더

용어 사전

robots.txt

사이트가 크롤러에게 허락하는 범위를 적어 둔 파일

robots.txt는 사이트가 크롤러에게 "여기는 가져가도 되고, 여기는 가져가지 말아 달라"고 적어 둔 파일입니다. 사이트 주소 뒤에 /robots.txt를 붙여 열면 누구나 볼 수 있습니다.

shop.example.com/robots.txt 파일. User-agent: *, Allow: /products, Disallow: /admin, Disallow: /cart, Crawl-delay: 2가 적혀 있고, Disallow: /admin 줄이 강조되어 있다. 아래에 /admin/orders는 수집 금지라는 판정이 있다.
/admin 아래는 가져가지 말라는 줄 때문에, /admin/orders는 수집 금지입니다

읽는 법

  • User-agent: 아래 규칙이 어느 크롤러에게 해당하는지 적습니다. *는 모든 크롤러입니다.
  • Disallow: 가져가지 말아 달라는 경로입니다. 이 경로로 시작하는 주소가 모두 해당합니다.
  • Allow: 가져가도 되는 경로입니다. Disallow한 범위 안에서 일부만 열어 줄 때도 씁니다.
  • Crawl-delay: 요청 사이에 둘 간격(초)입니다. 모든 크롤러가 이 줄을 따르지는 않습니다. 구글도 따르지 않습니다.

그림에서 /admin/orders는 /admin으로 시작하므로 금지입니다. /products/42는 Allow: /products에 해당하므로 가져가도 됩니다.

아래 robots.txt에는 Allow: /admin/help 줄이 하나 더 있습니다. 주소를 바꿔 넣으며 어느 줄 때문에 허용이나 금지가 되는지 확인해 보세요. /admin/help처럼 두 줄이 함께 해당하면 경로가 더 긴 줄을 따릅니다.

직접 해 보기주소마다 허용 · 금지 판정하기

shop.example.com/robots.txt

  1. 1User-agent:*
  2. 2Allow:/products
  3. 3Disallow:/admin이 줄을 따름
  4. 4Allow:/admin/help
  5. 5Disallow:/cart
  6. 6Crawl-delay:2
shop.example.com

✕ 가져가지 말아 달라고 적혀 있음

/admin/orders은 /admin로 시작하므로 3번째 줄을 따라 가져가면 안 됩니다.

약속이지 잠금장치가 아닙니다

robots.txt는 사이트가 요청하는 것이지 기술적으로 막는 장치가 아닙니다. 지키지 않아도 크롤러는 돌아갑니다. 하지만 지키지 않으면 사이트가 내 접속을 막을 수 있고, 이용약관 위반이 될 수도 있습니다. robots.txt에서 허락한 페이지라도 이용약관이 수집을 금지하거나 개인정보가 들어 있다면 가져가면 안 됩니다.

크롤러에 넣기

Python에는 robots.txt를 읽는 urllib.robotparser가 기본으로 들어 있습니다. AI에게 크롤러를 맡길 때 함께 요청하면 됩니다.

"크롤링하기 전에 urllib.robotparser로 robots.txt를 확인해서, 금지된 경로는 건너뛰게 해 줘. 요청 사이에는 2초씩 쉬게 해 줘."

헷갈리기 쉬운 말

robots.txt와 sitemap.xml

robots.txt가 "여기는 가져가지 말아 달라"는 목록이라면, sitemap.xml은 반대로 "이 페이지들을 가져가 달라"고 검색 엔진에게 알려 주는 목록입니다. robots.txt 안에 Sitemap: 줄로 sitemap.xml의 위치를 적어 두기도 합니다.

이 용어가 나오는 Lesson

함께 보면 좋은 용어