반응형
저번에 크롤링으로 찾아서 했지만
API를 사용하면 더 빠르게 처리할 수있다
GPT 만세
1. https://www.juso.go.kr/addrlink/main.do 여기서 api 신청을 받아야됨
2. 7천건을 돌리려 햇더니 400정도에서 그만 하라고 서버측 부하 과다를 막기 위해 막음
3. 많이 돌리려면 크롤링이 나은거같음
import requests
import json
def search_address(api_key, keyword):
url = "https://business.juso.go.kr/addrlink/addrLinkApiJsonp.do"
params = {
"currentPage": "1",
"countPerPage": "1",
"keyword": keyword,
"confmKey": api_key,
"resultType": "json",
"hstryYn" :"N",
"firstSort": "none",
"addInfoYn": "Y"
}
# JSONP 요청을 보내기 위해 callback 파라미터를 지정합니다.
params["callback"] = "callback"
response = requests.get(url, params=params)
# 응답을 JSONP 형식으로 받기 위해 callback 부분을 잘라냅니다.
jsonp_data = response.text[response.text.find("(") + 1:response.text.rfind(")")]
# JSON 형식으로 파싱합니다.
result = json.loads(jsonp_data)
if result.get("results"):
address_info = result["results"]["juso"][0]
return address_info
else:
return None
def main():
api_key = ""
keyword = "서귀포시 태평로 351"
address_info = search_address(api_key, keyword)
if address_info:
print("주소:", address_info["roadAddr"])
print("우편번호:", address_info["zipNo"])
print("동사무소:", address_info["hemdNm"])
else:
print("주소 검색에 실패했습니다.")
if __name__ == "__main__":
main()
반응형