url 정보를 세팅하고 이에 대해서 request 요청하면 응답 정보를 주는데
http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?LAWD_CD=11440&DEAL_YMD=201801&serviceKey=###SERVICE_KEY###
얼마전에 수정이 있었는지
응답되는 정보가 변경되었습니다.
req = urllib.request.Request(request_url)
try:
res = urllib.request.urlopen(req)
except UnicodeEncodeError:
print('[OpenAPI] UnicodeEncodeError')
return
data = res.read().decode('utf-8')
soup = BeautifulSoup(data, 'html.parser')
if (soup.resultcode.string != '00'):
print('[OpenAPI] ', soup.resultmsg.string)
return
items = soup.findAll('item')
print(items)
가져온 정보를 보니 주석과 <, > 정보들이 섞여 있었습니다.
<item><거래금액> 83,000<!--거래금액--><
건축년도>2005<!--건축년도--><년>2018<!--년--><
법정동> 상암동<!--법정동--><아파트>상암월드컵파크6단지<!--아파트--><
월>1<!--월--><일>11~20<!--일--><전용면적>104.32<!--전용면적--><
지번>1689<!--지번--><지역코드>11440<!--지역코드--><층>6<!--층--></item>
기존 코드를 수정해서 text 정보만 가져왔습니다.
item = item.text
HTML 태그들이 없어졌습니다.
<거래금액> 83,000<건축년도>2005<년>2018<법정동> 상암동<아파트>상암월드컵파크6단지<월>1<일>11~20<전용면적>104.32<지번>1689<지역코드>11440<층>6
이걸 다시 파싱하려니 정규표현식을 사용해야 했습니다.
결과만 보면 간단합니다.
split_item = re.split('<.*?>', item)
이렇게 하고나니 List형으로 잘 분리합니다.
['', ' 83,000', '2005', '2018', ' 상암동', '상암월드컵파크6단지',
'1', '11~20', '104.32', '1689', '11440', '6']
'Language > PYTHON' 카테고리의 다른 글
python3 newspaper 라이브러리로 키워드 뽑아내기 (1125) | 2018.05.12 |
---|---|
[Django] SMTPAuthenticationError 발생 문제 (802) | 2018.02.27 |
Python3로 naver 카페에 글쓰기 (18) | 2017.12.27 |
Naver open api 카페 한글 깨짐 현상 (Python3) (15) | 2017.09.05 |
[라즈베리파이3] 조도센서로 값 받아서 서버의 DB로 데이터 전송해서 저장하기 (9) | 2017.04.21 |