python - 국가공휴일 데이터 가져오기 (data.go.kr)

 

data.go.kr/

 


오퍼레이션 정보

 

일련번호

서비스명(국문)

오퍼레이션명(영문)

오퍼레이션명(국문)

1

특일 정보제공 서비스

getHoliDeInfo

국경일 정보조회

2

getRestDeInfo

공휴일 정보조회

3

getAnniversaryInfo

기념일 정보조회

4

get24DivisionsInfo

24절기 정보조회

5

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

getSundryDayInfo

잡절 정보조회

 

xml 형태

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
	<header>
		<resultCode>00</resultCode>
		<resultMsg>NORMAL SERVICE.</resultMsg>
	</header>
	<body>
		<items>
			<item>
				<dateKind>01</dateKind>
				<dateName>\xec\x8b\xa0\xec\xa0\x95</dateName>
				<isHoliday>Y</isHoliday>
				<locdate>20100101</locdate>
				<seq>1</seq>
			</item>
		</items>
		<numOfRows>10</numOfRows>
		<pageNo>1</pageNo>
		<totalCount>1</totalCount>
	</body>
</response>'

 

파이썬 코딩

 

import requests
import datetime
from bs4 import BeautifulSoup

def print_whichday(year, month, day) :
    r = ['월요일', '화요일', '수요일', '목요일', '금요일', '토요일', '일요일']
    aday = datetime.date(year, month, day)
    bday = aday.weekday()
    return r[bday]

def get_request_query(url, operation, params, serviceKey):
    import urllib.parse as urlparse
    params = urlparse.urlencode(params)
    request_query = url + '/' + operation + '?' + params + '&' + 'serviceKey' + '=' + serviceKey
    return request_query

year = 2020
mykey = "WoMViKPOmQYKGqkJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

for month in range(1,13):

    if month < 10:
        month = '0' + str(month)
    else:
        month = str(month)
    
    url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService'
    operation = 'getRestDeInfo'
    params = {'solYear':year, 'solMonth':month}

    request_query = get_request_query(url, operation, params, mykey)
    get_data = requests.get(request_query)    

    if True == get_data.ok:
        soup = BeautifulSoup(get_data.content, 'html.parser')        
        
        item = soup.findAll('item')
        #print(item);
        for i in item:
            
            day = int(i.locdate.string[-2:])
            weekname = print_whichday(int(year), int(month), day)
            print(i.datename.string, i.isholiday.string, i.locdate.string, weekname)                



 

출력

 

PS C:\Users\lucks> & d:/Python/Python39/python.exe d:/source/pythonexam/hello.py
11일 Y 20200101 수요일
설날 Y 20200124 금요일
설날 Y 20200125 토요일
설날 Y 20200126 일요일
설날 Y 20200127 월요일
삼일절 Y 20200301 일요일
제21대 국회의원선거 Y 20200415 수요일
부처님오신날 Y 20200430 목요일
어린이날 Y 20200505 화요일
현충일 Y 20200606 토요일
광복절 Y 20200815 토요일
임시공휴일 Y 20200817 월요일
추석 Y 20200930 수요일
추석 Y 20201001 목요일
추석 Y 20201002 금요일
개천절 Y 20201003 토요일
한글날 Y 20201009 금요일
기독탄신일 Y 20201225 금요일
PS C:\Users\lucks>

 

2021년 공휴일

1월1일 Y 20210101 금요일
설날 Y 20210211 목요일
설날 Y 20210212 금요일
설날 Y 20210213 토요일
삼일절 Y 20210301 월요일
어린이날 Y 20210505 수요일
부처님오신날 Y 20210519 수요일
현충일 Y 20210606 일요일
광복절 Y 20210815 일요일
추석 Y 20210920 월요일
추석 Y 20210921 화요일
추석 Y 20210922 수요일
개천절 Y 20211003 일요일
한글날 Y 20211009 토요일
기독탄신일 Y 20211225 토요일

 

참고 사이트

 

mwultong.blogspot.com/2007/01/python-int-long-float-string-to-number.html

hashcode.co.kr/questions/8174/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%82%A0%EC%A7%9C%EB%A5%BC-%EC%9E%85%EB%A0%A5%ED%95%98%EB%A9%B4-%EC%9A%94%EC%9D%BC%EC%9D%84-%EC%95%8C%EB%A0%A4%EC%A3%BC%EB%8A%94-%EC%BD%94%EB%93%9C

 

[출처] https://aspdotnet.tistory.com/2495

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
64 [python][자료구조] "pdf 취소선 검출" How to identify strike-out text from PDF files using Python 졸리운_곰 2024.07.18 544
63 [python][자료구조] 오픈 소스 Python PDF 파서 라이브러리 file 졸리운_곰 2024.07.16 444
62 [python][자료구조] 벡터화 | Vectorization file 졸리운_곰 2023.12.21 330
61 [python][자료구조] Python의 Loop? NO! , Python의 Vectorization? OK!!! file 졸리운_곰 2023.12.21 473
60 [python][자료구조] Python - MySQL 데이터 추가, 삭제, 업데이트 졸리운_곰 2023.05.13 488
59 [python][자료구조] Python의 JSON - 문자열을 JSON으로 변환하는 방법 졸리운_곰 2023.05.06 456
58 [python][자료구조] [Python] Logging to MongoDB (로그 남기기) file 졸리운_곰 2023.03.24 428
57 [python][자료구조] [스파르타 웹 개발 종합] 파이썬으로 크롤링하고 DB에 저장하기(request, bs4, mongoDB 패키지 사용) 졸리운_곰 2023.03.12 461
56 [python][자료구조] [MongoDB] Document Query(조회) – find() 메소드 졸리운_곰 2023.03.08 315
55 [python][자료구조] Python(flask)으로 mongoDB 제어하기 – pymongo file 졸리운_곰 2023.03.08 604
54 [python][자료구조] django sqlite3 MySQL로 전환하기 file 졸리운_곰 2023.03.02 409
53 [python][자료구조] django에서 db.sqlite3 데이터를 mysql로 옮기기 졸리운_곰 2023.03.02 427
52 [python][자료구조] Python - JSON 파일 읽고 쓰는 방법 졸리운_곰 2023.02.04 480
51 [python][자료구조] [인코딩] 유니코드 인코딩 처리 (특히 json 입출력 시) 졸리운_곰 2023.02.04 363
50 [python][자료구조] Dropbox API 사용하기 (with python) 졸리운_곰 2022.12.03 306
49 [Python][자료구조] SQLAlchemy Tutorial(한글) - 2 졸리운_곰 2022.12.03 393
48 [Python]][자료구조] SQLAlchemy Tutorial(한글) - 1 졸리운_곰 2022.12.03 275
47 [python][자료구조] python anaconda 에서 mysql 접속 졸리운_곰 2022.01.25 657
46 [python 자료구조] 림코딩의 파이썬으로 csv 다루기 강좌 (읽기,쓰기,수정,추가) 졸리운_곰 2022.01.16 521
45 python - 읽은 후 kafka 메시지를 삭제하는 방법 졸리운_곰 2021.07.13 900
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED