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>&lt;거래금액&gt;    83,000<!--거래금액-->&lt;
건축년도&gt;2005<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;
법정동&gt; 상암동<!--법정동-->&lt;아파트&gt;상암월드컵파크6단지<!--아파트-->&lt;
월&gt;1<!--월-->&lt;일&gt;11~20<!--일-->&lt;전용면적&gt;104.32<!--전용면적-->&lt;
지번&gt;1689<!--지번-->&lt;지역코드&gt;11440<!--지역코드-->&lt;층&gt;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']


  1. 이재성 2019.10.14 00:11

    비슷한 문제를 겪고 있는데 몇일째 삽질을해도 방법을 못찾겠어요ㅜ.ㅜ 팁 좀 부탁드립니다.

    import requests
    from bs4 import BeautifulSoup
    import pandas as pd

    url = "http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?serviceKey=KrKzQ4sxQDVnTpdt3X3p8Hi9nZPr5KnsS%2FkKe%2FxVPYbY7cK6NfPtsvJ3%2FoSiJNlK7u2Q8geu1UmUmQQKmZ9f3w%3D%3D&LAWD_CD=11110&DEAL_YMD=201812"

    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')

    ItemList = soup.findAll('item')
    print(ItemList)



    결과는
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <response>
    <header>
    <resultcode>
    00
    </resultcode>
    <resultmsg>
    NORMAL SERVICE.
    </resultmsg>
    </header>
    <body>
    <items>
    <item>
    &lt;거래금액&gt; 23,500
    <!--거래금액-->
    &lt;건축년도&gt;2003
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 익선동
    <!--법정동-->
    &lt;아파트&gt;현대뜨레비앙
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;8
    <!--일-->
    &lt;전용면적&gt;36.08
    <!--전용면적-->
    &lt;지번&gt;55
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;7
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 20,000
    <!--거래금액-->
    &lt;건축년도&gt;2014
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 연건동
    <!--법정동-->
    &lt;아파트&gt;이화에수풀
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;18
    <!--일-->
    &lt;전용면적&gt;16.98
    <!--전용면적-->
    &lt;지번&gt;195-10
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;7
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 45,500
    <!--거래금액-->
    &lt;건축년도&gt;2004
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 혜화동
    <!--법정동-->
    &lt;아파트&gt;혜화훼미리
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;3
    <!--일-->
    &lt;전용면적&gt;60.82
    <!--전용면적-->
    &lt;지번&gt;20-12
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;7
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 26,800
    <!--거래금액-->
    &lt;건축년도&gt;2002
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 창신동
    <!--법정동-->
    &lt;아파트&gt;MID그린(4동)
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;20
    <!--일-->
    &lt;전용면적&gt;59.55
    <!--전용면적-->
    &lt;지번&gt;601-5
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;7
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 78,700
    <!--거래금액-->
    &lt;건축년도&gt;2009
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 숭인동
    <!--법정동-->
    &lt;아파트&gt;종로청계힐스테이트
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;21
    <!--일-->
    &lt;전용면적&gt;84.9478
    <!--전용면적-->
    &lt;지번&gt;766
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;9
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 65,000
    <!--거래금액-->
    &lt;건축년도&gt;2009
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 숭인동
    <!--법정동-->
    &lt;아파트&gt;종로청계힐스테이트
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;26
    <!--일-->
    &lt;전용면적&gt;59.9426
    <!--전용면적-->
    &lt;지번&gt;766
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;2
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 24,300
    <!--거래금액-->
    &lt;건축년도&gt;1997
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 숭인동
    <!--법정동-->
    &lt;아파트&gt;도시그린빌라트19
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;29
    <!--일-->
    &lt;전용면적&gt;57.45
    <!--전용면적-->
    &lt;지번&gt;181-121
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;3
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 135,500
    <!--거래금액-->
    &lt;건축년도&gt;2009
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 평창동
    <!--법정동-->
    &lt;아파트&gt;롯데캐슬 로잔
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;15
    <!--일-->
    &lt;전용면적&gt;190.743
    <!--전용면적-->
    &lt;지번&gt;108
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;4
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 90,000
    <!--거래금액-->
    &lt;건축년도&gt;2003
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 평창동
    <!--법정동-->
    &lt;아파트&gt;크래스빌
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;15
    <!--일-->
    &lt;전용면적&gt;187.9
    <!--전용면적-->
    &lt;지번&gt;46-1
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;4
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 41,500
    <!--거래금액-->
    &lt;건축년도&gt;2004
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 평창동
    <!--법정동-->
    &lt;아파트&gt;에지앙빌
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;20
    <!--일-->
    &lt;전용면적&gt;110.61
    <!--전용면적-->
    &lt;지번&gt;179-5
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;2
    <!--층-->
    </item>
    <item>
    &lt;거래금액&gt; 133,000
    <!--거래금액-->
    &lt;건축년도&gt;2009
    <!--건축년도-->
    &lt;년&gt;2018
    <!--년-->
    &lt;법정동&gt; 평창동
    <!--법정동-->
    &lt;아파트&gt;롯데캐슬 로잔
    <!--아파트-->
    &lt;월&gt;12
    <!--월-->
    &lt;일&gt;28
    <!--일-->
    &lt;전용면적&gt;190.743
    <!--전용면적-->
    &lt;지번&gt;108
    <!--지번-->
    &lt;지역코드&gt;11110
    <!--지역코드-->
    &lt;층&gt;1
    <!--층-->
    </item>
    </items>
    <numofrows>
    10
    </numofrows>
    <pageno>
    1
    </pageno>
    <totalcount>
    11
    </totalcount>
    </body>
    </response>
    [<item>&lt;거래금액&gt; 23,500<!--거래금액-->&lt;건축년도&gt;2003<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 익선동<!--법정동-->&lt;아파트&gt;현대뜨레비앙<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;8<!--일-->&lt;전용면적&gt;36.08<!--전용면적-->&lt;지번&gt;55<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;7<!--층--></item>, <item>&lt;거래금액&gt; 20,000<!--거래금액-->&lt;건축년도&gt;2014<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 연건동<!--법정동-->&lt;아파트&gt;이화에수풀<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;18<!--일-->&lt;전용면적&gt;16.98<!--전용면적-->&lt;지번&gt;195-10<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;7<!--층--></item>, <item>&lt;거래금액&gt; 45,500<!--거래금액-->&lt;건축년도&gt;2004<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 혜화동<!--법정동-->&lt;아파트&gt;혜화훼미리<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;3<!--일-->&lt;전용면적&gt;60.82<!--전용면적-->&lt;지번&gt;20-12<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;7<!--층--></item>, <item>&lt;거래금액&gt; 26,800<!--거래금액-->&lt;건축년도&gt;2002<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 창신동<!--법정동-->&lt;아파트&gt;MID그린(4동)<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;20<!--일-->&lt;전용면적&gt;59.55<!--전용면적-->&lt;지번&gt;601-5<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;7<!--층--></item>, <item>&lt;거래금액&gt; 78,700<!--거래금액-->&lt;건축년도&gt;2009<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 숭인동<!--법정동-->&lt;아파트&gt;종로청계힐스테이트<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;21<!--일-->&lt;전용면적&gt;84.9478<!--전용면적-->&lt;지번&gt;766<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;9<!--층--></item>, <item>&lt;거래금액&gt; 65,000<!--거래금액-->&lt;건축년도&gt;2009<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 숭인동<!--법정동-->&lt;아파트&gt;종로청계힐스테이트<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;26<!--일-->&lt;전용면적&gt;59.9426<!--전용면적-->&lt;지번&gt;766<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;2<!--층--></item>, <item>&lt;거래금액&gt; 24,300<!--거래금액-->&lt;건축년도&gt;1997<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 숭인동<!--법정동-->&lt;아파트&gt;도시그린빌라트19<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;29<!--일-->&lt;전용면적&gt;57.45<!--전용면적-->&lt;지번&gt;181-121<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;3<!--층--></item>, <item>&lt;거래금액&gt; 135,500<!--거래금액-->&lt;건축년도&gt;2009<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 평창동<!--법정동-->&lt;아파트&gt;롯데캐슬 로잔<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;15<!--일-->&lt;전용면적&gt;190.743<!--전용면적-->&lt;지번&gt;108<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;4<!--층--></item>, <item>&lt;거래금액&gt; 90,000<!--거래금액-->&lt;건축년도&gt;2003<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 평창동<!--법정동-->&lt;아파트&gt;크래스빌<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;15<!--일-->&lt;전용면적&gt;187.9<!--전용면적-->&lt;지번&gt;46-1<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;4<!--층--></item>, <item>&lt;거래금액&gt; 41,500<!--거래금액-->&lt;건축년도&gt;2004<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 평창동<!--법정동-->&lt;아파트&gt;에지앙빌<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;20<!--일-->&lt;전용면적&gt;110.61<!--전용면적-->&lt;지번&gt;179-5<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;2<!--층--></item>, <item>&lt;거래금액&gt; 133,000<!--거래금액-->&lt;건축년도&gt;2009<!--건축년도-->&lt;년&gt;2018<!--년-->&lt;법정동&gt; 평창동<!--법정동-->&lt;아파트&gt;롯데캐슬 로잔<!--아파트-->&lt;월&gt;12<!--월-->&lt;일&gt;28<!--일-->&lt;전용면적&gt;190.743<!--전용면적-->&lt;지번&gt;108<!--지번-->&lt;지역코드&gt;11110<!--지역코드-->&lt;층&gt;1<!--층--></item>]

    Process finished with exit code 0

+ Recent posts