import os import time import datetime import numpy as np import pandas as pd import requests import urllib.request import json from pykml import parser import warnings warnings.filterwarnings("ignore") import ssl ssl._create_default_https_context = ssl._create_unverified_context def SEOUL_cctv_info() : #kmlCctvInfo_url = 'https://topis.seoul.go.kr/kml/kmlCctvInfo.kml' kmlCctvInfo_url = 'https://topis.seoul.go.kr/map/cctvKml.do' kmlCctvInfo_file = 'seoul_kmlCctvInfo.kml' urllib.request.urlretrieve(kmlCctvInfo_url, kmlCctvInfo_file) with open(kmlCctvInfo_file, 'r', encoding = 'utf-8-sig') as f: root = parser.parse(f).getroot() places = [] for place in root.Document.Placemark: cctv_name = place.name.text data = {item.get("name"): item.value.text for item in place.ExtendedData.Data} places.append({ "cctv_name" : cctv_name, "code": data.get('code'), "addr": data.get('addr'), }) df = pd.DataFrame(places) cctv_info = [] for idx, i in enumerate(df.index[:]) : url_0 = 'https://topis.seoul.go.kr/map/selectCctvInfo.do?camId=' + df.loc[i, 'code'] html_0 = requests.get(url_0, verify = False) str_0 = json.loads(html_0.text) for j in str_0['rows'] : cctv_info.append(j) print(idx + 1, df.shape[0]) df_1 = pd.DataFrame(cctv_info) df_1 = df_1.replace(np.nan, '') df_1['CCTVNAME'] = df_1['cctvName'] df_1['CCTVADDRESS'] = df_1['hlsUrl'] df_2 = df_1[['CCTVNAME', 'CCTVADDRESS']] df_2 = df_2.sort_values(by = 'CCTVNAME') print(df_2) return df_2 now = datetime.datetime.utcnow() + datetime.timedelta(hours = 9) df = SEOUL_cctv_info() url_m3u8 = {} print(df) for i in df.index : dict_key = df.loc[i, 'CCTVNAME'] dict_value = df.loc[i, 'CCTVADDRESS'] print(dict_key, dict_value) url_m3u8[dict_key] = dict_value html_head = """