SW/Python

python : MK 부동산 입주 캘리던 크롤링 쉽게 하는 방법

얇은생각 2019. 10. 19. 07:30
반응형

MK부동산 입주 캘린더 크롤링1

import requests
import bs4

url = 'http://estate.mk.co.kr/newapt/danji_list.php?enter_year=2018&enter_month=01&si_name=1100000000&start=0'
data = requests.get(url)
data_bs = bs4.BeautifulSoup(data.content, 'lxml')

tr_list = data_bs.find_all('tr')

a_list = []
b_list = []
n_list = []

for tr in tr_list[1:]:
    td_list = tr.find_all('td')
    a_list.append(td_list[1].text)
    b_list.append(td_list[2].text)
    n_list.append(int(td_list[4].text.replace("세대", "")))

pd.DataFrame({"주소":a_list, "건물":b_list, "세대":n_list})

 

MK 부동산의 입주캘린더 리스트를 웹크롤링하는 예제입니다. 지난 실습들을 통해, 해당 실습도 수월하게 진행할 수 있었습니다. 다음과 같이 url에 원하는 년월을 입력하면 아래와 같은 결과로 주소와 건물, 세대 정보를 알 수 있습니다.

 

 

 

결과

입주 캘린더 크롤러 결과

 

이제 크롤링한 결과를 판다스 데이터 프레임으로 출력해 보았습니다. 원하는 년월만 입력하여 다음과 같이 프레임으로 만들 수 있습니다. 프레임으로 만들었다는 것은 다양한 파일 형식으로 저장 가능하다는 것을 의미합니다.

 

 

 

MK부동산 입주 캘린더 크롤링2

import requests
import bs4

url = 'http://estate.mk.co.kr/newapt/danji_list.php?enter_year=2018&enter_month=01&si_name=1100000000&start=0'
data = requests.get(url)

pd.read_html(data.content)[0]

 

매번 불편하게 크롤링을 해서 하나하나, 인덱스 값을 인력해서 크롤링하면 복잡한 과정이 따릅니다. 하지만 판다스에는 html에 있는 테이블 데이터를 자동으로 파싱해오는 기능이 있습니다. 이러한 기능을 활용한다면, 하나하나 힘들게 인덱스 값을 입력하지 않아도 쉽게 데이터 프레임으로 만들 수 있습니다. 이러한 프레임을 통해 다양한 파일 형식과 핸들링이 가능합니다. 아래 결과를 참조해주세요.

 

 

결과

판다스 데이터 프레임을 활용한 크롤링

 

이러한 코드를 보면 판다스 데이터 프레임의 힘을 알 수 있습니다. 필요한 컬럼을 추려서, 핸들링을 하면, 나에게 필요한 데이터 핸들링을 손쉽게 크롤링해서 만들 수 있습니다.

반응형