크롤링 방법

크롤링 방법은 보통 2가지로 나뉜다.

  1. 정적 크롤링 : 페이지를 크롤링하는 방식으로 정적인 페이지라기 보단 정적인 행동을 할 수 있다고 이해하는게 좋다
  2. 동적 크롤링: 동적으로 크롤링 할 수 있다. 예를 들면 검색을 했을때 특정 블록을 클릭하는 등 동적인 기능을 크롤링 작업 내부에 함께 포함한다.

도메인에 맞는 크롤링 방법

그러면 프로젝트에 맞는 크롤링 방법은 무엇일까? 당연히 동적 크롤링이 더 좋아 보이지만, 정적 크롤링으로 가능하다면 정적 크롤링으로 해야한다. 크롤링은 우리가 익히알고 있는데 GET을 데이터를 받는 것이 끝이 아닌 브라우저에 띄우는 작업까지 포함되기 때문에 시간이 많이 소요되는 태스크이기 때문이다.

Untitled

위 사진은 크롤링을 수행해야하는 페이지이다.

우리가 크롤링 해야하는 데이터는 다음과 같다.

  1. 메뉴
  2. 가게 사진
  3. 영업시간

각각을 살펴보기 전에 url를 먼저 살펴보면 https://map.naver.com/p/search/빽다방 건대역화양점/place/~~ 으로 보이는데 place뒤에는 난수값으로 보이는 값이 있다. 직접 실험해본 결과 난수값은 고정적이지 않고 지역마다 다르게 설정되는 것으로 확인되었다(사실이 아닐 수 있다)

그러면 위와 같은 상세조회 페이지로 바로 들어갈 수 없다.

무슨일이나면 https://map.naver.com/p/search/빽다방 건대역화양점 와 같이 검색을 하면 먼저 검색 창이 뜬다.

Untitled

위와 같은 검색창이 뜨게되는데 이때 검색어와 동일한 가게가 존재한다면 redirect되어 상세 조회 페이지로 넘어가게된다.

따라서 크롤링을 하게위해서 다음 조건이 추가된다.

  1. 등록되어 있는 가게와 동일한 값으로 검색을 해야한다.