Skip to content

9. 웹 로봇

HyoSang edited this page Apr 4, 2019 · 1 revision

9. 웹 로봇

크롤러와 크롤링

  • 웹 페이지를 한 개 가져오고, 그 페이지가 가리키는 모든 페이지를 가져오는 일을 재귀적으로 반복하는 로봇
  • 루트 집합 : 크롤러가 시작하는 페이지
  • 어디를 방문했는 지 기억하지 못하면 A-B-C-A-B-C와 같은 루프에 빠질 수 있어서 반드시 방문한 곳을 기억해야 한다.
  • 루프 상태에 빠진 크롤러는 서버의 리소스를 과도하게 잡아먹어 일반 사용자 서비스에 영향을 미칠 수 있다.
  • 각각이 분리된 한 대인 컴퓨터인 로봇들을 동시에 묶어서 farm을 구성해 크롤링을 함께 진행할 수 있다.
  • 파일 시스템의 심볼릭 링크는 의도치 않는 순환을 만들어 크롤러를 루프에 빠뜨릴 수 있다.

로봇의 HTTP

  • HTTP 요구사항이 적은 HTTP/1.0을 주로 이용한다.
  • 대부분 신원 식별 헤더(특히 User-Agent)를 구현하고 전송한다.
  • User-Agent, From, Accept, Referer 헤더를 구현하는것을 권장한다.
  • 웹 관리자는 User-Agent를 확인해 로봇의 요청을 대응해야한다.

robots.txt

  • 가상 docroot에 존재해야하는 파일
  • robots.txt get 요청에 404로 응답한다면 로봇의 행동에 제약이 없는 서버라는 의미
  • robots.txt get 요청에 401, 403으로 응답한다면 해당 로봇은 그 서버에 완전히 접근할 수 없다는 의미
  • 한 줄을 여러 줄로 나누어 적는 것은 허용되지 않는다.
  • 주석은 #을 이용한다

User-Agent줄

  • 접근할 수 있는 로봇을 명시한다
  • 존재하지 않으면 모든 로봇 접근을 허용한다.
  • 대소문자를 구분하지 않으므로 주의해야한다.

Disallow, Allow

  • 로봇은 모든 규칙을 확인해야 한다.
Clone this wiki locally