네이버 부동산 매물 엑셀 정리, 리스틀리 (Listly)로 한번에 해결
부동산 실거래가나 위치 정보 등을 한 번에 엑셀로 정리하고자 할 때 리스틀리를 사용해보세요. 크롬 또는 웨일/엣지 브라우저에서 리스틀리 확장 프로그램을 설치한 후, 해당 매물을 클릭하면 부동산 데이터를 한 번에 엑셀로 정리할 수 있습니다. 그럼 직접 확인해보실까요?
리스틀리 설치하기
오늘 예제로 알려드리는 방법은 유료 기능(자동클릭, 자동스크롤,자동액션) 을 활용하여 한번에 원하는 지역의 전체 매물을 수집하는 방법입니다. 수집하면서 겪을 수 있는 실패사례까지 나와있기때문에 포스팅 전체를 읽고 따라해보세요! 무료로는 1 Page -> 1 Excel 무제한 서비스하고 있으니 번거로우시더라도 여러번 반복 작업을 하셔야합니다.
한 눈에 살펴보기
- 네이버 부동산 모바일 페이지 접속 후 매물 정보 클릭
- 데이터보드에서 설정 버튼을 클릭해 자동 스크롤 값 변경
- 자동 액션 스크립트 복사 붙여넣기
- 데이터 재추출
네이버 부동산 모바일 페이지로 접속해주세요.
네이버 모바일 부동산에 접속해보시면, 매물 정보가 바로 나타나지 않는다는 사실을 알 수 있어요. [매물 목록] 버튼을 클릭해야 비로소 매물 정보를 확인할 수 있는 예제입니다. 그렇기 때문에 리스틀리의 자동 클릭을 이용해 해당 버튼을 자동으로 클릭하는 동작이 필요합니다.
우선, 특별한 동작없이 리스틀리 전체 (LISTLY WHOLE) 버튼을 누르면 아래와 같이 20개의 매물 정보가 수집된 것을 확인하실 수 있을 거예요.
하지만, 이번 예제 페이지는 20개보다 훨씬 더 많은 매물 정보를 가지고 있어요. 아래 이미지처럼 스크롤을 내리면 매물 정보가 끊임없이 나오는 것을 확인하실 수 있습니다.
그렇다면, 위에서 살펴본 자동 클릭과 자동 스크롤 동작이 함께 이루어져야 원하는 데이터를 수집할 수 있겠죠? 실제로 두 동작을 이용해 간편하게 데이터를 수집할 수 있는 웹 사이트들이 많지만, 아쉽게도 이번 예제는 적용되지 않는 사례입니다. 바로 데이터를 수집하고자 하시는 분들은 아래의 자동 클릭과 자동 액션 영역만 확인하시면 됩니다. 그럼 이제 한번 네이버 부동산 웹 사이트를 살펴볼까요?
자동 클릭
우선 자동 클릭을 설정하는 방법은 간단합니다. 네이버 모바일 부동산 페이지에서 매물 목록 버튼에 마우스 우클릭해 검사하기(Inspect)를 선택하면, 아래와 같이 개발자 도구를 열 수 있어요.
개발자 도구 콘솔창에서 마우스 커서를 매물 목록 버튼 위에 올려 놓은 후, 다시 마우스 우클릭을 해주세요. 그리고 복사하기 (Copy) > 선택자 복사하기 (Copy selector) 버튼을 클릭하면 선택자 정보가 복사되었을 거예요.
이제, 리스틀리 데이터보드로 돌아와 설정 버튼을 클릭합니다.
해당 페이지를 아래로 내려보면, 더 많은 데이터 로딩을 위해 자동클릭 섹션이 보이실 거예요. 자동클릭할 요소 (CSS Selector) 영역에 복사한 선택자 값을 붙여넣고, 반복할 횟수를 1회로 설정합니다. 앞서 살펴본 것처럼, 예제 페이지를 접속한 뒤 매물 목록 버튼을 한 번만 누르면 매물 정보를 볼 수 있기 때문에 반복할 횟수는 1회로 설정하면 됩니다.
자동 스크롤
그리고 해당 페이지를 조금 올려보면 더 많은 데이터 로딩을 위해 자동스크롤 영역이 보이실 거예요. 자동으로 부동산 페이지를 아래로 내려 매물 정보를 더 불러와야 하기 때문에 반복할 횟수를 5회 정도로 설정합니다.
모든 설정값을 저장한 후, 데이터보드 페이지에서 재추출(refresh data) 버튼을 클릭해 해당 데이터를 재추출합니다.
상태 메시지가 추출 중으로 변경되었다면, 데이터가 재추출되고 있다는 뜻입니다.
그럼 결과를 확인해볼까요?
결과를 확인해 보니, 상태 메시지가 실패로 변경되었어요. 원하는 데이터가 추출되지 않았더라도, 리스틀리에서는 데이터 수집 중 에러가 발생했을 때 수집 페이지 상태를 확인할 수 있도록 스크린샷을 제공하고 있어요. 그럼 스크린샷 버튼을 한번 클릭해보겠습니다.
NoClickElementError 에러 메시지는 클릭할 수 있는 요소가 없을 때 발생하는 에러입니다. 리스틀리 서버들은 전 세계에서 가장 큰 AWS 라는 서비스를 통해 운영되고 있는데, 네이버 지도 웹사이트가 리스틀리뿐만 아니라 AWS 를 통해 들어오는 접속 요청을 제한하는 경우가 있습니다. 이런 경우에는 재추출 버튼을 눌러 다시 한번 데이터를 추출해보는 것을 권장하고 있습니다. 만약, 한 번에 데이터 추출이 완료되었다면 자동 액션 영역으로 넘어가셔도 좋습니다.
이번에는 데이터 추출이 완료되었어요! 데이터보드에서 최신 버튼을 클릭해 추출한 데이터를 확인해볼게요.
그런데 이상하게도 수집된 매물 정보가 여전히 20개인 것을 확인하실 수 있을 거예요. 그 이유는 리스틀리의 동작 방식이 자동 스크롤, 자동 클릭 동작 순으로 작동하기 때문입니다. 그렇기 때문에 쇼핑몰 웹 사이트에서 웹 페이지를 밑으로 내려 제품 정보를 가져온 뒤, 더 보기 버튼을 클릭해 데이터를 수집할 경우 위와 같은 설정만으로도 데이터가 모두 수집될 거예요. 하지만 네이버 지도 모바일 페이지의 경우, 자동 클릭 동작이 우선되어야 하기 때문에 아무리 자동 스크롤 값을 변경하더라도 자동 스크롤이 제대로 적용되지 않습니다.
자동 액션
웹 사이트 구조가 모두 동일하게 디자인되지 않는 만큼 웹 데이터 수집에도 다양한 방식이 필요합니다. 오늘 살펴본 예제는 리스틀리의 자동 클릭, 자동 액션 기능을 이용해 해결할 수 있어요. 특히, 자동 액션 동작은 데이터를 불러오기 위해 필요한 모든 종류의 액션 (클릭, 이동, 스크롤) 들을 말하는데요. 방법은 간단합니다! 설정 페이지의 액션 스크립트 영역에 아래와 같이 액션 스크립트를 복사해 붙여 넣으면 됩니다.
자동 클릭 설정값은 1회로 설정하고, 자동 스크롤 동작은 삭제해주세요!
리스틀리의 기본 기능으로 수집되지 않는 데이터가 있다면, 리스틀리 팀이 액션 스크립트 작성을 도와 드리고 있으니 걱정마세요! 아래 액션 스크립트는 네이버 부동산 모바일 페이지 매물 정보 로딩을 위한 스크립트입니다. 일반 PC 버전 네이버 부동산 페이지에서는 동작하지 않을 수 있으니, 주의해주세요.
listly_action_end = false;
let sleep = (t) => {
return new Promise(resolve=>setTimeout(resolve,t));
}
async function custom_action() {
// CUSTOM_ACTION - START
btn = document.querySelector("#_countContainer a");
btn.click();
await sleep(2000);
}
async function process() {
console.log("process function started");
await custom_action();
console.log("process function finished");
listly_action_end = true;
}
process();
이제, 데이터를 재추출해보세요.
아래 이미지처럼 매물 정보가 수집되었다면 성공입니다.
마지막으로 엑셀 버튼을 클릭해 325개의 네이버 부동산 매물 데이터를 엑셀로 한 번에 정리해보세요! 몇 가지 세팅만으로 간편하게 원하는 지역의 매물 전체를 엑셀로 정리하였습니다. 지역이 동일하다면 리스틀리 데이터보드에서 앞으로 추출 버튼만 누르면 매일 갱신되는 매물정보를 빠르게 엑셀로 다운하실 수 있을거예요.
더이상 복붙하지말고, 빠르고 똑똑하게 리스틀리로 매물을 정리해보세요.