데브남 : 데이터 수집 : 초보자 가이드

moon.kick·2025년 1월 30일

부동산 네이버 매물 데이터를 수집하는 방법

이 가이드는 네이버 부동산 매물 데이터를 자동으로 수집하는 방법을 아주 상세하고 친절하게 설명합니다. 컴퓨터를 잘 모르는 사람도 따라할 수 있게 차근차근 알려드릴 테니 걱정 마세요! 😊


📌 준비물

  1. Python 설치
    Python이 설치되어 있어야 합니다.
    • 여기에서 다운로드 및 설치하세요.
  2. 필요한 라이브러리 설치
    • Python에서 데이터를 가져오는 데 필요한 도구(BeautifulSoup, requests 등)를 설치할 겁니다.
    • 명령어 입력 방법은 아래에서 알려드릴게요.
  3. 네이버 부동산 페이지 접근
    네이버 부동산의 특정 매물 페이지에서 데이터를 가져옵니다.

📌 1단계: Python과 필요한 라이브러리 설치하기

1. Python 설치 확인하기

  • Windows: 윈도우 + R을 누르고 cmd 입력 후 엔터를 누릅니다.
  • 터미널 창에 아래 명령어를 입력합니다:
    python --version
    만약 버전이 나오면 설치된 것입니다. 그렇지 않으면 Python 공식 사이트에서 설치하세요.

2. 필요한 라이브러리 설치하기
터미널에서 아래 명령어를 입력합니다:

pip install requests
pip install beautifulsoup4
pip install pandas

📌 2단계: Python 코드 작성하기

아래 코드는 네이버 부동산의 특정 매물 정보를 자동으로 수집하는 예제입니다.

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 네이버 부동산 URL (예제 링크, 실제 사용할 페이지 URL로 변경하세요)
base_url = "https://new.land.naver.com/complexes?ms=37.5665,126.9780"

# 사용자 정의 함수: HTML 페이지 가져오기
def get_html(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
    }
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        return response.text
    else:
        print(f"페이지를 불러오는 데 실패했습니다. 상태 코드: {response.status_code}")
        return None

# 매물 정보 파싱 함수
def parse_properties(html):
    soup = BeautifulSoup(html, 'html.parser')
    properties = []

    # 매물 리스트 파싱 (CSS 선택자 수정 필요)
    items = soup.select('div.item_list_area div.item_inner')
    for item in items:
        # 매물명, 가격, 위치 등 정보 추출
        name = item.select_one('span.name').get_text(strip=True)
        price = item.select_one('span.price').get_text(strip=True)
        location = item.select_one('span.location').get_text(strip=True)
        
        properties.append({
            "매물명": name,
            "가격": price,
            "위치": location
        })

    return properties

# 데이터 저장 및 실행
def main():
    html = get_html(base_url)
    if html:
        properties = parse_properties(html)
        # DataFrame으로 변환 후 CSV 파일로 저장
        df = pd.DataFrame(properties)
        df.to_csv('naver_properties.csv', index=False, encoding='utf-8-sig')
        print("데이터 수집 및 저장 완료: naver_properties.csv")

if __name__ == "__main__":
    main()

📌 3단계: 코드 실행하기

  1. Python 코드 저장

    • 위 코드를 naver_real_estate.py라는 이름으로 저장하세요.
    • 저장 위치는 터미널에서 쉽게 접근할 수 있는 폴더로 하세요 (예: C:\projects\naver_real_estate.py).
  2. 터미널에서 실행하기

    • 터미널(또는 명령 프롬프트)을 열고 저장된 폴더로 이동합니다:
      cd C:\projects
    • 아래 명령어로 Python 스크립트를 실행합니다:
      python naver_real_estate.py
  3. 결과 확인

    • 스크립트 실행 후 naver_properties.csv 파일이 생성되었는지 확인하세요.
    • 엑셀 또는 메모장으로 열어 매물 데이터를 확인할 수 있습니다.

📌 4단계: 추가 팁

  1. 네이버 부동산 구조가 변경될 경우

    • HTML 구조가 바뀌면 parse_properties() 함수의 CSS 선택자를 수정해야 합니다.
    • 웹사이트를 우클릭 → 검사(Inspect)로 들어가서 매물 이름, 가격, 위치가 있는 HTML 태그를 확인하고 select() 부분을 수정하세요.
  2. 더 많은 페이지 크롤링

    • 현재 코드는 하나의 페이지에서만 데이터를 가져옵니다.
    • 여러 페이지에서 데이터를 가져오려면 URL에 페이지 번호를 추가해 루프를 사용하세요:
      for page in range(1, 11):  # 1페이지부터 10페이지까지
          page_url = f"https://new.land.naver.com/complexes?page={page}"
          html = get_html(page_url)
          # 나머지 코드는 동일

📌 5단계: 주의사항

  • 네이버의 크롤링 정책을 항상 확인하세요. 과도한 요청은 차단될 수 있습니다.
  • User-Agent를 설정해 사람처럼 보이도록 하세요.
  • 작업을 자동화할 경우 일정한 시간 간격(딜레이)을 두는 것이 좋습니다:
    import time
    time.sleep(3)  # 3초 대기

📌 요약

  1. Python과 필요한 라이브러리 설치
  2. 네이버 부동산의 URL로부터 HTML 가져오기
  3. BeautifulSoup으로 매물 정보 파싱
  4. CSV 파일로 저장 및 결과 확인

이 가이드를 따라 하시면 네이버 부동산 매물 데이터를 자동으로 수집하는 프로그램을 만들 수 있습니다! 😊

⚡ 추가적인 도움이 필요하시면 언제든 질문해 주세요!

profile
@mgkick

0개의 댓글