설명
robots.txt는 1994년부터 이어진 관습으로, 도메인 루트에 위치한 일반 텍스트 파일이며 어떤 사용자 에이전트(크롤러)가 어떤 URL 경로에 접근하도록 허용되거나 금지되는지를 나열합니다. 검색 엔진(Google, Bing)과 정상적으로 동작하는 크롤러는 이를 준수합니다. 이 파일은 공개적으로 읽을 수 있습니다. 어떤 사이트든 robots.txt를 직접 가져와서(`curl https://example.com/robots.txt`) 사이트 소유자가 크롤러에게 원하는 동작을 확인할 수 있습니다.
Robots Exclusion Protocol은 순전히 권고 사항입니다. 웹 서버는 robots.txt 지침을 강제하지 않으며, 단지 게시할 뿐입니다. 제대로 동작하지 않는 크롤러는 robots.txt를 무시할 수 있으며, 그래도 사이트는 요청된 URL을 그대로 제공합니다. 실질적인 강제력은 검색 엔진 정책(Googlebot은 robots.txt에서 금지된 페이지를 색인하지 않음)과, 상업적 스크레이퍼가 소유자의 명시적 의도를 무시할 때 발생하는 법적/평판상의 결과에서 나옵니다.
상업적 스크레이핑의 경우 robots.txt는 두 가지 측면에서 중요합니다. 법적으로, 명시적인 `Disallow` 지침을 무시하는 것은 CFAA(컴퓨터 오용 관련법) 사건에서 악의적 접근의 증거로 인용될 수 있습니다(특히 미국에서는 hiQ v LinkedIn 판결 이후). 운영 측면에서, 특정 경로를 금지하는 사이트는 해당 경로에 더 강력한 안티봇 보호를 두는 경우가 많습니다. `Disallow: /search`는 보통 `/search`를 스크레이핑할 경우 사이트의 나머지 부분보다 더 강한 방어 체계가 작동한다는 의미입니다.
작동 방식
크롤러가 도메인에서 작업을 시작하면 먼저 `/robots.txt`를 가져와서 지시문을 파싱합니다. 이 파일은 간단한 문법을 사용합니다: `User-agent:
그런 다음 크롤러는 가져오려는 각 URL을 규칙에 대조하여 확인하고 차단된 경로는 건너뜁니다. 일부 크롤러는 robots.txt를 24시간 동안 캐시하며, 성숙한 프로덕션 크롤러는 변경 사항을 반영하기 위해 더 자주 새로고침합니다.