1. 참조 api url
2. 질의 내용
공공 api(도로명 주소)관련 key 인증에러
3. 코드 작성 의도
http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdService/retrieveNewAdressAreaCdService/getNewAddressListAreaCd?ServiceKey={**발급받은키(decode)**}&searchSe=road&srchwrd=세종로 17
#발급받은 키 : 공유해도되나 싶어서, 일단 '발급받은키(decode)' 로 임시 표시했습니다.
4. 에러 코드 : SERVICE KEY IS NOT REGISTERED ERROR.
실습1)
코드([강의자료] 17_20차수.pdf)
###test01 <- 강의 교재참조
import requests
#요청주소
req_url ='<http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdService/retrieveNewAdressAreaCdService/getNewAddressListAreaCd>'
#발급받은키
API_KEY_decode='**일반 인증키 (Decoding) 값 복붙**' # 디코딩
search_Se= 'dong', # 검색구분(dong:동(읍/면)명, road :도로명[default], post:우편번호)
srch_wrd= '세종로 17' # 도로명
req_parameter = {"ServiceKey":API_KEY_decode, "searchSe":search_Se, "srchwrd":srch_wrd}
r = requests.get(req_url, params = req_parameter)
xml_data = r.text
print(xml_data)
결과
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><NewAddressListResponse><cmmMsgHeader><requestMsgId></requestMsgId><responseMsgId></responseMsgId><responseTime>20210622:121930357</responseTime><successYN>N</successYN><returnCode>30</returnCode><errMsg>SERVICE KEY IS NOT REGISTERED ERROR.</errMsg></cmmMsgHeader></NewAddressListResponse>
실습2)
코드(참조 블로그)
###test02 <- 인터넷 검색에서 참조
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlencode, quote_plus, unquote
#요청주소
xmlUrl ='<http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdService/retrieveNewAdressAreaCdService/getNewAddressListAreaCd>'
#발급받은키
#my_en_key=unquote('**일반 인증키(Decoding)**')`# 인코딩
my_de_key='**일반 인증키 (Decoding) 값 복붙**' # 디코딩
queryParams = '?' + urlencode(
{
quote_plus('ServiceKey') : my_de_key, # 발급 받은키
quote_plus('searchSe') : 'dong', # 검색구분(dong:동(읍/면)명, road :도로명[default], post:우편번호)
quote_plus('srchwrd') : '세종로 17' # 도로명
}
)
queryParams
response = requests.get(xmlUrl + queryParams).text.encode('utf-8')
response
xmlobj = BeautifulSoup(response, 'xml')
xmlobj
결과
<?xml version="1.0" encoding="utf-8"?> <NewAddressListResponse><cmmMsgHeader><requestMsgId/><responseMsgId/><responseTime>20210622:121855937</responseTime><successYN>N</successYN><returnCode>30</returnCode><errMsg>SERVICE KEY IS NOT REGISTERED ERROR.</errMsg></cmmMsgHeader></NewAddressListResponse>
시간이 약?