반응형
import pandas as pd
import requests
from bs4 import BeautifulSoup
key = '내 서비스키'
# url='http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?LAWD_CD=11110&DEAL_YMD=201512&serviceKey='+key
url='http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?serviceKey='+key
rowList=[] # 전체 행을 저장할 변수
nameList=[] # 열(칼럼) 이름을 저장할 변수
item_content=[] # 각 행별 칼럼값들을 저장할 임시공간
# 지역코드는 11000(서울)~39020(서귀포)
city_list=["26440","26410","26710","26290","26170","26260","26230","26320","26530","26380","26140","26500","26470","26200","26110","26350"]
for city in city_list:
params ={'LAWD_CD' : city, 'DEAL_YMD' : '202110' }
response = requests.get(url, params=params).text #인코딩이 필요할 경우 .encode('utf-8')
soup = BeautifulSoup(response, "lxml-xml")
item_list = soup.find_all('item') # 전체 contents를 담은 변수
rowsLen = len(item_list) # 전체 행 수
for i in range(rowsLen):
columns = item_list[i].find_all() # 1번째 행(row)의 모든 요소값들을 칼럼으로 한다.
columnsLen = len(columns) # 1번째 행(row)의 요소길이를 열(column) 길이로 한다.
for j in range(0, columnsLen):
if i == 0 and city=="26440": # 첫번째 행 데이터 수집시 컬럼 값 저장
nameList.append(columns[j].name) # name 값만 추출한다
eachColumn = columns[j].text # 각 행(i)의 각 열(j)의 텍스트만 추출한다.
item_content.append(eachColumn) # 각 칼럼값을 append하여 1개 행을 만든다.
rowList.append(item_content) # 전체 리스트 공간에 개별 행을 append한다.
item_content=[] # 다음 row의 값을 입력받기 위해 비워준다.
df = pd.DataFrame(rowList, columns=nameList)
df.head(50)
반응형
'Programming > Python_Web' 카테고리의 다른 글
Django - Gitlab - Heroku CD/CI 배포 와 Freenorm DNS연결 (0) | 2022.10.09 |
---|---|
Python - Django 시작하기 4 - oracle DB ORM Join (0) | 2021.11.18 |
Python - Django 시작하기 3 - blog app 추가하기 (0) | 2021.10.13 |
Python - Django 시작하기 2 - start bootstrap template 적용 (0) | 2021.10.13 |
Python - Django 시작하기1 - 설치 (0) | 2021.10.13 |