✊ 필오의 개발일지
Back to Posts
2019년 10월 21일

WIP_웹 로봇

WIP_웹 로봇

웹 로봇(스스로 움직이는 사용자 에이전트)에 대해서 알아본다. 웹 로봇은 사람과의 상호작용 없이 연속된 웹 트랜잭션들을 자동으로 수행하는 소프트웨어 프로그램이다.

주식 그래프 봇 (매분 HTTP GET 요청을 보내 얻은 데이터로 그래프 생성) 웹 통계조사 로봇 (통계 정보를 수집) 검색엔진 로봇 (모든 문서를 수집) 가격 비교 로봇 (상품 가격 DB를 만들기 위해 온라인 쇼핑몰 웹페이지 수집)

1. 크롤러와 크롤링

그렇다면 크롤러들은 어떻게 동작할까?

1.1 시작은 ‘루트 집합’에서 🏃

  1. 좋은 루트 집합
  1. 페이지들을 추가하는 기능을 제공

1.2 링크 추출과 상대 링크를 절대링크로

1.3 순환 피하기

1.3.1 순환이 해로운 이유

순한은 크롤러에게 해롭다.

  1. 같은 페이지들을 반복해서 가져오는데 모든 시간을 허비하게 만들 수 있다.
  1. 웹 서버에 부담이 된다.
  1. 루프 자체가 문제가 되지 않더라도, 크롤러는 많은 수의 중복된 페이지들을 가져오게 된다.

1.3.2 빵순환을 피하기 위해 방문을 기록 (부스러기의 흔적 Breadscrumb)

트리와 해시테이블 / 느슨한 존재 비트맵 / 체크포인트 / 파티셔닝

  1. 트리와 해시테이블
  1. 느슨한 존재 비트맵 Lossy presence bit maps

    모르겠다. url을 숫자형태의 비트로 만들어서 저장하고, 같은 존재비트가 있으면 이미 크롤링되었다고 간주하는 듯

  1. 체크포인트 checkpoint
  1. 파티셔닝 Partitioning

1.4 URL 정규화

별칭(alias)과 로봇 순환

같은 문서를 가리키는 다른URL들

  1. 기본 포트가 80번일 때
  1. 이스케이프 문자가 원래 문자와 같을때
  1. 태그에 따라 페이지가 바뀌지 않을 때
  1. 서버가 대소문자를 구분하지 않을 때
  1. 기본 페이지가 index.html일 때
  1. 도메인과 ip 주소

URL 정규화를 통해 alias 회피

WIP..



참고자료

Previous코드스피츠85 1회-(1) JavaScript Now
Next캐시의 원리와 제어방법

Related

© 2025 Felix