파이썬 API - 부동산 실거래

# 부동산 정보 모으기

# 실거래가 정보 모으기

import requests
from bs4 import BeautifulSoup  # bs4라는 모듈 안에 있는 BeautifulSoup를 import -> 함수를 사용할 때 모듈이름.함수이름() 식으로 표기하지 않아도 됨!
import pdb # 디버깅 패키지

url = ""
pageNo = 1
numOfRows = 1000
LAWD_CD = '11110'
DEAL_YMD = '202012'

def get_apt_info():
  raw_resp = requests.get(url, params = {
    'ServiceKey': Service_Key,  # 왼쪽 parameter 값은 API문서에서 정해놓은 대로 사용하되(오타 시 "INVALID REQUEST PARAMETER ERROR") 오른쪽 변수이름은 맘대로 지정해도 상관 없다.
    'pageNo': pageNo,
    'numOfRows': numOfRows,
    'LAWD_CD': LAWD_CD,
    'DEAL_YMD': DEAL_YMD
  })
  return raw_resp.text  # XML 데이터는 text 형식으로 받아야 함! (json 파일과 다름) , 일반 텍스트로 받은 뒤 XML 파서 로 따로 데이터를 뽑아야 한다.

def parse_apt_info(raw_apt_info):  # XML 데이터를 별도로 Parse 해주는 함수!
  keys = ['거래금액','아파트','도로명코드','년','월','일','건축년도']
  soup = BeautifulSoup(raw_apt_info, 'lxml-xml')
  results = []
  
  items = soup.findAll('item')  # XML 문서에서 <item> 엘리먼트만 뽑기
  for item in items: # item 엘리먼트를 하나씩 반복하면서 돌아가기 (루프)
    result = {}
    for key in keys:
      result[key] = item.find(key).text

    # 데이터 전처리
    result['거래금액'] = result['거래금액'].strip()
    result['건축년도'] = int(result['건축년도'])  # 타입 캐스팅
    
    results.append(result)  # 찾은 result 값을 results 리스트에 추가
    # results = [{...},{...},...]
    
  return results
  
  
raw_apt_info = get_apt_info()
parsed_apt_info = parse_apt_info(raw_apt_info)
print(parsed_apt_info)
# pdb.set_trace()

 

 

데이터 전처리.JPG
데이터 전처리 전
데이터 전처리 후.JPG
데이터 전처리 후

'Python > 패스트캠퍼스(테크보이 워니)' 카테고리의 다른 글

UnitTest, TDD  (0) 2022.06.04
JSON 과 XML  (0) 2022.04.10
파이썬 API 사용  (0) 2022.04.10
파이썬 모듈/패키지  (0) 2022.04.07
파이썬 상속(클래스, 오브젝트)  (0) 2022.04.04