흑우마스터의 마법의 공간

크롤링 메모 본문

프로그래밍/닷넷

크롤링 메모

흑우마스터 2023. 4. 26. 15:51

https://map.naver.com/v5/entry/place/1513533055

 

네이버의 스마트플레이스 주소 체계이다. 고유 아이디 값을 랜덤으로 스케쥴링 한다고 가정하였을 때 정해진 패턴에 따라 조회를 수행할 수 있다.

 

저 코드 상에서 가져온 값들을 토대로 JSON을 만든다고 하면 "새로오픈"이나 다른 것을 알 수 없는데 알 수 있는 방법은 있다.

 

코드를 분석해본바 대부분 REST API로 정보를 기입할 수 있지만 나머지 정보는 알 수 없는 셈.

 

https://www.wishket.com/project/126594/

 

N사 지도 DB 추출 프로그램 및 관리자페이지 개발 | 위시켓

프로젝트 개요 : - 네이버 지도에 신규로 등록되는 업체 DB를 추출하고자 합니다. - 사전에 경력이 있던 개발자가 필요합니다.

www.wishket.com

 

프로젝트 개요 :
- 네이버 지도에 신규로 등록되는 업체 DB를 추출하고자 합니다.
- 사전에 경력이 있던 개발자가 필요합니다.

현재 상황 :
- 현재 이용 중인 프로그램이 있습니다만, 퀄리티/속도/양에 대한 개선점 이 필요합니다.
- 현재 이용 중인 프로그램은 API/크롤링 동시 사용하는 프로그램입니다.

필요 요소 :
- N사 지도 신규 업체 상호 추출 및 DB 구축( 스마트플레이스 정보 )
- 관리자 페이지 개발
- N사 API 기능 활용/크롤링 방식 함께 사용해야 합니다.

개발 환경/언어 :
- 제안해 주세요.

요구 사항 :
1. 추출이 되어야 하는 신규 DB 업체 관련 정보는 상호명, 전화번호, 주소, 링크입니다.
2. 추출된 DB가 누적 및 조회가 가능하여야 합니다.
- 추출된 데이터를 조회 가능한 웹사이트 개발
3. 전체 카테고리에 대한 수집입니다.
- 특정 카테고리는 정해져 있지 않습니다.
4. 요청드리는 기준 :
- 추출 속도 : 신규업체가 등록되면 5분 이내에 수집
- 추출 개수 : 1일 1,000개 수준( 최소 700개 )

신규 DB 추출되는 속도가 가장 중요하며, 하루에 추출되는 DB양도 중요합니다.
해본 경험이 있으시거나 현재 진행 중이라면 지원서 내용에 기재해 주시기 바랍니다.
정확한 이해도와 속도를 극한으로 뽑아낼 자신 있으신 분의 지원을 기다립니다.

현재 기재된 금액은 임의적인 금액이며 프로그램의 성능이 월등할 시 추가 금액 지출도 가능합니다.
월 사용료를 지불하는 방식도 가능합니다. 협의하에 결정하면 좋을 거 같습니다.

이 공고대로라면 그 전 사람은 REST API 호출과 크롤링을 어떻게 했는지는 모르겠지만 Selenium으로 기존에 없던 ID가 나오면 찾아서 파싱 하는 쪽으로 해결 했을 수도 있다.

 

하지만 이렇게 짜면 속도가 분명 속도가 느리다. headless로 해도 글쎄? cookie만 일정 주기로 획득하고 VPS를 여러 개 만들고 나눠서 찾게 하는게 훨씬 쉬웠을 것 같은데- 아마 코드를 제대로 안 본 것 같다. "새로 오픈" 같은 정보는 별도 루트를 통해서 찾는데 오래 걸리지 않았다. 5분 걸렸나..?  이 전 개발자가 결합식으로 네이버가 페이지를 구성하는걸 몰랐나보다

 

어찌 되었던 ID가 생성될 때마다 +1 이라면 추출 갯수에 N개 수량 만큼 특정 주기로 조회하는 큐 메시지를 만들고 VPS 워커들이 이를 가져가서 처리하는 식으로 작업을 하면 다수의 IP에서 비 로그인 형태로 자료를 수집하는거면 어렵지 않을텐데

 

30일에 800만원이라.. 정말 우회해서 안 걸릴 목적으로 만든다면 5달러짜리 한국 Region 기준으로 VPS 10개 미만이면 충분할 것 같은데 이걸 800이나 주고 하네?

 

이게 어렵나? 생각해서 해봤는데 역시나.. 크롤링 하는 사람들 꿀빨고 있었네;; 이걸 자기들만 먹고 있었다니..

 

분하다.