Robots.txt와 사용자 에이전트(user agent)

Q·2022년 7월 30일
0

Crawl

목록 보기
2/5

Robots.txt와 사용자 에이전트(user agent)


Robots.txt는 웹 사이트 및 웹 페이지를 수집하는 로봇들의 무단 접근을 방지하기 위해 만들어진 로봇 배제 표준(robots exclusion standard)이자 국제 권고안입니다. 일부 스팸 봇이나 악성 목적을 지닌 가짜 클라이언트 로봇은 웹 사이트에 진짜 클라이언트처럼 접근합니다. 그리고 무단으로 웹 사이트 정보를 긁어가거나, 웹 서버에 부하를 줍니다. 이런 로봇들의 무분별한 접근을 통제하기 위해 마련된 것이 Robots.txt입니다.

그래서 가끔 웹 서버에 요청을 보내도 요청을 거부 당하는 일이 있습니다. 우리를 무단 봇으로 짐작하고 웹 서버에서 접근을 막는 것이죠. 그럼 우리는 브라우저에게 스팸 봇이 아니라 사람이라는 것을 알려주면 되겠죠? 이때 브라우저에게 전달하는 것이 사용자 에이전트(user agent) 정보입니다.

사용자 에이전트는 사용자를 대표하는 컴퓨터 프로그램입니다. 웹 맥락에서는 브라우저, 웹 페이지를 수집하는 봇, 다운로드 관리자, 웹에 접근하는 다른 앱 모두 사용자 에이전트지요. 웹 서버에 요청할 때 사용자 에이전트 HTTP 헤더(user agent HTTP header)에 나의 브라우저 정보를 전달하면 웹 서버가 나를 진짜 사용자로 인식할 수 있게 됩니다.

요약하자면 웹 스크래핑을 할 때 원칙은 다음과 같습니다.

  • 서버에 과도한 부하를 주지 않는다.
  • 가져온 정보를 사용할 때(특히 상업적으로) 저작권과 데이터베이스권에 위배되지 않는지 주의한다.

Robots.txt는 웹 페이지의 메인 주소에 '/robots.txt'를 입력하면 확인 할 수 있습니다. 예를 들어 naver의 경우에는 'www.naver.com/robots.txt'를 입력하면 됩니다. 여기서 'User-agent'는 규칙이 적용되는 대상 사용자 에이전트가 누구인지를 말합니다. 'Disallow'와 'Allow'는 각각 크롤링을 금지할 웹 페이지와 허용할 웹 페이지를 뜻합니다. 자세한 규약은 robots.txt 공식 홈페이지(www.robotstxt.org)를 참조해주세요.

profile
Data Engineer

0개의 댓글