저는 2023년 10월쯤, 토이프로젝트로 네이버 부동산 크롤러를 만들었습니다.
지금도 제가 원하는 지역의 아파트 시세나 매물 등을 확인하는 용도로 사용을 하고 있는데요.
관련해서 작업했던 기록을 정리해보려고 합니다.
이 글에서는 네이버 부동산 매물 크롤러를 만들 때 설계한 내용을 정리하는 글입니다.
참고!
네이버는 부동산 매물 관련해서 공식 API를 지원하지 않습니다.그래서 네이버 부동산 웹 사이트에서 호출하는 API를 기반으로 매물을 조회해서 가지고 와야 합니다.
네이버 부동산 API는 짧은 시간에 대량으로 요청하면 일시적으로 호출이 차단될 수 있으므로 호출량을 적절히 조절하여 호출하는 과정이 필요합니다.
관련해서 발생할 수 있는 법적 문제는 본인 책임입니다.
Repository: 링크
프로젝트에 대한 간단한 설명은 레포지토리 내 readme.md 파일에 기록해두었습니다.
부동산 지도 화면에서 매물 목록을 누르면 호출되는 API입니다.
지정한 위도, 경도 좌표 범위 내에 존재하는 부동산 매물의 목록을 조회할 수 있습니다.
그 외 Filter 값을 통해 조회할 매물을 필터할 수 있습니다.
부동산 지도 화면에서 단지 목록을 누르면 호출되는 API입니다.
지정한 위도, 경도 좌표 범위 내에 존재하는 단지 목록을 조회할 수 있습니다.
호출 시 필요한 QueryString은 /cluster/ajax/articleList
와 동일합니다.
lat는 latitude
, lon은 longitude
, btm은 bottom
, lft는 left
, top은 top
, rgt는 right
의 약자로 위도, 경도의 좌표값을 가지고 있습니다.
위도에 해당하는 필드: lat
, top
, btm
경도에 해당하는 필드: lon
, lft
, rgt
위 지도를 기준으로 매물 목록 버튼을 누르면 아래의 QueryString으로 /cluster/ajax/articleList
API가 호출됩니다.
QueryString
lat=37.5100191&lon=126.891867&btm=37.5056275&lft=126.8754734&top=37.5144105&rgt=126.9082607
이 때 각 필드의 의미는 아래와 같습니다.
보여지는 지도의 중앙 좌표: lat
, lon
보여지는 지도의 상하좌우 끝단의 좌표: top
, lft
, rgt
, btm
따라서 위 지도 기준으로 lat
, lon
좌표의 위치는 신도림역
이고, lft
와 btm
좌표의 위치는 왼쪽 하단의 월드메르디앙 아파트
의 위치가 됩니다.
네이버 부동산 소스 코드를 뜯어보면 아래와 같이 front-api로 명시된 API 목록을 확인할 수 있습니다.
프론트 화면을 구성하기 위해 매물에 대한 추가 정보를 조회하는 API 모음일 것으로 예상하고 있으며, 이 중 몇가지 중요 API를 설명하도록 하겠습니다.
매물과 연관된 Key 정보를 조회할 수 있는 API 입니다.
이 API를 통해서 확인한 데이터는 다른 front-api를 호출할 때 사용됩니다.
요청 예시:
https://fin.land.naver.com/front-api/v1/article/key?articleId=2429861377
매물의 상세 정보를 조회할 수 있습니다.
매물 목록 조회 API를 통해서 알 수 있는 정보보다 더 자세한 매물 정보를 조회할 수 있습니다.
매물의 단지 정보를 조회할 수 있습니다.
요청 예시:
https://fin.land.naver.com/front-api/v1/complex?complexNumber=127997
단지 내 전기차 충전 시설 정보를 조회할 수 있습니다.
요청 예시:
https://fin.land.naver.com/front-api/v1/complex/evStaion?complexNumber=3210
매물 주변의 대중교통 정보를 조회할 수 있습니다.
요청 예시:
https://fin.land.naver.com/front-api/v1/article/transport?itemId=2429861377&itemType=article
네이버 부동산 API는 짧은 시간에 많은 요청을 보내면 일정 시간동안 접속이 차단되니 주의하셔야 합니다.