1. 공공데이터포털 접속 후 회원가입
https://www.data.go.kr/index.do
2. "특일 정보제공 서비스" 활용신청
https://www.data.go.kr/data/15012690/openapi.do
3. 개발을 위한 Open API 활용가이드 읽기
4. 테스트
## 환경설정
import requests
import urllib.parse as urlparse
import pandas as pd
from datetime import date, timedelta
## 요청 url & operation & ServiceKey
url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService'
operation = 'getHoliDeInfo' # 국경일 + 공휴일
ServiceKey = 'Your Key'
## parameter
solYear = '2018' # 연도
solMonth = '09' # 월
# _type = xml or json (default = xml)
# numOfRows = 한페이지 결과 수 (default = 10)
params = {'solYear':solYear, 'solMonth':solMonth}
request_query = get_request_query(url, operation, params, ServiceKey)
print('request_query :', request_query)
response = requests.get(url=request_query)
print('status_code:' + str(response.status_code))
if True == response.ok:
print(response.text)
5. 응용
import requests
from urllib import parse
import pandas as pd
from bs4 import BeautifulSoup
from datetime import datetime, timedelta, date
from urllib.request import Request, urlopen
# 조회기간
start_year = 2010
end_year = int(date.today().strftime('%Y')) + 1
year_list = [year for year in range(start_year, end_year, 1)]
def getHoliday(year) :
url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo'
key_encoding = 'Your Key'
key_decoding = parse.unquote(key_encoding)
params = {
'ServiceKey': key_decoding,
'pageNo' : '1',
'numOfRows': '100',
'solYear': year,
}
response = requests.get(url, params=params)
xml = BeautifulSoup(response.text, 'lxml')
items = xml.find('items')
item_list = []
for item in items :
item_dict = {
'Date': item.find('locdate').text.strip(),
# '이름': item.find('datename').text.strip(),
'isholiday': item.find('isholiday').text.strip(),
}
item_list.append(item_dict)
return item_list
holiday_list = []
for year in year_list :
holiday = getHoliday(year)
holiday_list.extend(holiday)
holiday_df = pd.DataFrame(holiday_list)
holiday_df
'Develop > the code' 카테고리의 다른 글
[Open API] 네이버 API를 활용한 지도 만들기 (0) | 2022.02.04 |
---|---|
[Open API] 네이버 API 쉽게 쓰기 (0) | 2022.02.03 |
[OpenAPI] investpy (주식/ETF/지표/환율) (0) | 2021.10.14 |
[OpenAPI] 한국은행 경제통계시스템 활용법 (2) | 2021.10.14 |
'비오는 날' 예측하기 (0) | 2021.10.13 |