https://www.minwon.go.kr/new_info/customer/AA090_CM010_No_man_popup.jsp
import openpyxl
import requests
import folium
ex = openpyxl.load_workbook('./2020년04월30일기준_무인민원발급창구_설치장소_및_운영시간(민원24).xlsx')
muin = ex['4월30일']
num = 2
address = []
name = []
while True:
if '서울' in muin.cell(row=num, column=6).value:
# 주소 저장
address_b = muin.cell(row=num, column=6).value
address_a = address_b.split('(')[0]
address.append(address_a)
# 이름 저장
name_b = muin.cell(row=num, column=3).value
name.append(name_b)
num+=1
continue
else:
break
# print(len(address))
# print(len(name))
def getLatLng(address):
app_key = 'KakaoAK ' + '__REST API Key__'
url = 'https://dapi.kakao.com/v2/local/search/address.json' # endpoint
params = {
'query' : address,
'page' : '',
'AddressSize' : ''
}
headers = {'Authorization' : app_key}
response = requests.get(url, headers=headers, params=params)
status_code = response.status_code
resp = response.json()
if resp['documents'] != []:
longitude = resp['documents'][0]['x'] # 경도
latitude = resp['documents'][0]['y'] # 위도
return longitude, latitude
else:
return (0, 0)
xpoint = []
ypoint = []
for i in address:
x, y= getLatLng(i)
xpoint.append(x) # 경도 저장
ypoint.append(y) # 위도 저장
map_list = folium.Map(location=[37.566659527,126.978346859], zoom_start=10)
for item in range(len(address)):
latitude = float(ypoint[item])
longtitude = float(xpoint[item])
# 예외처리 : 서울특별시 용산구 이태원로 22(용산동3가)의 정보 못불러옴
if latitude == 0:
continue
folium.Marker(
location = [latitude, longtitude],
popup = name[item],
icon=folium.Icon(color='red', icon='glyphicon glyphicon-print')
# icon 적용 할 때 부트스트랩 최신버전을 사용하면 표시안됨. 3버전 이용
).add_to(map_list)
map_list