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 Call Stack: 0.0000 360832 1. {main}() /volume1/web/aboda_re/index.php:0 0.0001 361136 2. require('/volume1/web/aboda_re/wp-blog-header.php') /volume1/web/aboda_re/index.php:17 0.3313 8688160 3. require_once('/volume1/web/aboda_re/wp-includes/template-loader.php') /volume1/web/aboda_re/wp-blog-header.php:19 0.3313 8688160 4. do_action($hook_name = 'template_redirect') /volume1/web/aboda_re/wp-includes/template-loader.php:13 0.3313 8688376 5. WP_Hook->do_action($args = [0 => '']) /volume1/web/aboda_re/wp-includes/plugin.php:517 0.3313 8688376 6. WP_Hook->apply_filters($value = '', $args = [0 => '']) /volume1/web/aboda_re/wp-includes/class-wp-hook.php:348 0.3378 9132120 7. AMPforWP\AMPVendor\amp_render('') /volume1/web/aboda_re/wp-includes/class-wp-hook.php:324 0.4765 9615624 8. AMPforWP\AMPVendor\AMP_Post_Template->load() /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/includes/vendor/amp/amp.php:95 0.4765 9615624 9. AMPforWP\AMPVendor\AMP_Post_Template->load_parts($templates = [0 => 'single']) /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/includes/vendor/amp/includes/class-amp-post-template.php:160 0.4765 9615944 10. AMPforWP\AMPVendor\AMP_Post_Template->verify_and_include($file = '/volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/templates/design-manager/swift/single.php', $template_type = 'single') /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/includes/vendor/amp/includes/class-amp-post-template.php:166 0.4773 9617496 11. include('/volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/templates/design-manager/swift/single.php') /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/includes/vendor/amp/includes/class-amp-post-template.php:501 0.5024 9743128 12. amp_featured_image() /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/templates/design-manager/swift/single.php:45 0.5024 9743128 13. ampforwp_framework_get_featured_image() /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/components/components-core.php:225 0.5083 9744344 14. getimagesize($filename = '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') /volume1/web/aboda_re/wp-content/plugins/accelerated-mobile-pages/components/featured-image/featured-image.php: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

한글발전유공 포상 대상자 선정, 글꼴 개발과 세계화 공로

문화체육관광부는 천여 종의 글꼴을 개발하고 한국어를 세계에 알리는 데 헌신한 유공자들을 선정해 2026년 한글발전유공 포상을…

9분 ago

로또 1등도 출근합니다 출연진 이정표, 신병4 이은 2위

로또 1등당첨자인 팀장이 다음 날에도 정장 차림으로 출근한다는 설정 자체가 시청자들의 이목을 집중시켰고, 결과적으로 티빙…

1시간 ago

산재보험 가입의무, 2026 최신 가이드와 혜택 총정리

2026년 10월 현재, 상시 근로자 1명 이상이나 하루 4시간 이상 노무를 제공하는 사업주는 산재보험에 무조건…

2시간 ago

지방세납부 방법, 연체료 막는 7가지 방식

지방세 납부는 기한 내 몰라서가 아니라 방법을 잘못 알면 연체료를 무겁게 지게 됩니다. 주택 보유자라면…

4시간 ago

조류인플루엔자 예방, 겨울철새 남하 시작 선제적 차단

가을이 깊어지면서 우리나라를 찾는 겨울철새의 이동이 본격적으로 시작되어 방역 당국에 비상이 걸렸습니다. 올해는 주요 철새도래지에서…

5시간 ago

지방규제합리화 경진대회 대행용역 제안서 평가 결과 발표

2026년 지방규제합리화 우수사례 경진대회 행사운영 대행용역 제안서 평가 결과가 행정안전부 공식 채널에 발표되었습니다. 이번 평가는…

8시간 ago