Categories: 미분류

부동산 매물 정보 수집하기 – 부동산 데이터 네이버 부동산 크롤링 및 가공 #1

Warning: getimagesize(https://i0.wp.com/blog.kakaocdn.net/dna/YBEvR/btsJEUU24W5/AAAAAAAAAAAAAAAAAAAAACuOb7L2O5sFDGtNrI33P4xl3ZiK1ANU52QKMgkKvHKz/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1767193199&allow_ip&allow_referer&signature=g7Jwt%2BfH7lWMpwOntgd4N43D55U%3D&ssl=1): Failed to open stream: HTTP request failed! HTTP/1.1 404 File Not Found in /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/components/featured-image/featured-image.php on line 64

부동산 매물 정보 수집 방법 – 부동산 데이터 크롤링 및 처리 #1 ㅣ 네이버 부동산 데이터는 매우 유용하게 활용할 수 있지만, 원하는 형태로 변환된 자료를 얻는 것은 상당히 어렵습니다. Excel의 VBA를 사용하여 데이터를 변환하는 방법이 소개되곤 하지만, Python의 뛰어난 기능을 통해 실시간 부동산 매물 정보를 크롤링하는 구체적인 방법을 공부하고 있습니다.

이제 네이버 부동산에서 방대한 데이터를 Python을 활용해 필요한 정보를 직접 수집해 보겠습니다.

부동산 매물 정보 수집하기 – 부동산 데이터 크롤링 및 가공 #1

부동산 매물 정보 수집하기 – 부동산 데이터 크롤링 및 가공 #1

네이버 부동산은 PC 환경과 모바일 환경으로 나누어져 서비스 되어지고 있으며,각각의 환경을 크롤링하는 방식도 차이가 있습니다. 두 방식 중에서 모바일 환경을 크롤링하는 방식이 보여지는 정보가 적어서 보다 유리합니다.

PC환경

모바일환경

특정 아파트 단지의 매물 정보 가져오기

아래 이미지에서는 http://m.land.naver.com에 접속하여 ‘상암월드컵파크4단지’의 매물과 관련된 정보를 보여준다. 여기서 중요한 요소는 아파트 단지의 고유 식별자인 ‘23620’과 거래 방식을 나타내는 코드 ‘A1:B1:B2 ‘입니다. 각 코드의 의미는 A1은 매매, B1은 전세, B2는 월세, 그리고 B3는 단기임대에 해당합니다.

예를 들어, 다음 주소에서 매물 정보를 확인할 수 있습니다: https://m.land.naver.com/complex/info/23620?tradTpCd=A1:B1:B2:B3&ptpNo=1&bildNo=&articleListYN=Y

네이버페이 부동산

네이버페이 부동산

m.land.naver.com

특정단지의 매물값을 가져오는 코드를 다시 작성해보면 아래와 같습니다.

import requests
import json
import pandas as pd

URL = "https://m.land.naver.com/complex/getComplexArticleList"

parameter = {
    'hscpNo': '23620', # 상암월드컵파크4단지 고유번호
    'tradTpCd': 'A1:B1:B2', # 거래방식 3가지
    'order': 'spc_', # 면적별 정열
}

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.39',
    'Referer': 'https://m.land.naver.com/'
}

page = 0
lands = []

while True:
    page = page + 1
    parameter['page'] = page

    response = requests.get(URL, params=parameter, headers=header)
    if response.status_code != 200:
        print('invalid status: %d' % response.status_code)
        break

    data = json.loads(response.text)
    result = data['result']
    if result is None:
        print('no result')
        break
    
    for item in result['list']:
        lands.append([item['tradTpNm'], item['bildNm'], item['flrInfo'], item['prcInfo'], item['spc1']])
    
    if result['moreDataYn'] == 'N':
        break
print(pd.DataFrame(lands))

 

다음편에서는 각 아파트별 정보를 얻을 수 있는 파이썬 코드를 알아보도록 하겠습니다.

urjent

Share
Published by
urjent

Recent Posts

스페이스X 나스닥100 편입 7월 7일 확정…상장 한 달 만에 초고속 합류

스페이스X가 오는 7월 7일부터 나스닥100 지수에 공식 편입됩니다. 나스닥 거래소는 26일 공식 공시를 통해 결정을…

1시간 ago

김포 인천 마약 좀비 영상 확산… 경찰 “정확하지 않은 내용, 명예훼손 우려”

2026년 6월 27일 기준 SNS를 중심으로 인천과 김포에서 촬영된 ‘마약 의심’ 영상들이 잇따라 공유되고 있으며,…

1시간 ago

이집트 이란 월드컵 예상 2026년 6월 27일 G조 최종전, 한국의 32강 진출 희망은?

2026 북중미 월드컵 조별리그 최종전이 6월 27일(한국시간) 하루 만에 대결을 앞두고 있습니다. 한국은 1승2패로 승점…

6시간 ago

장기하 윤가이 열애설 공식 인정… 18살 차 극복한 2년 교제

장기하와 윤가이가 2년 이상 교제 중인 사실을 소속사가 2026년 6월 27일 공식으로 인정했습니다. 쿠팡플레이 예능…

9시간 ago

제이오션 중공업 주가 전망: 군산조선소 인수 확정과 조선업 호황 기대감

제이오션 중공업이 전북 군산 조선소 인수를 위한 양수도 본계약을 체결한 것으로 확인됩니다. 이는 침체된 지역…

13시간 ago

튀르키예 활성단층 증가, 13년 만에 44% 늘어…이스탄불 강진 우려

튀르키예의 활성단층 수가 13년 만에 44% 증가한 것으로 공식 확인됐습니다. 2026년 6월 22일 튀르키예 에너지천연자원부…

20시간 ago