park-csu / tCafeteria

A python library to parse korean school meal/schedule

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tCafeteria

학교 급식정보와 학사일정을 파싱해옵니다

Installation

from tCafeteria import *

tanbang-cafeteria 모듈은 bs4, requests를 필요로 합니다! 자동으로 모듈을 설치하는 메소드가 있지만, 작동하지 않으면 아래의 과정을 따라 수동 설치해주세요.

$ pip install bs4 requests

로 먼저 설치해주세요!

학교 구분 코드

# 관할지역 정보
# 'SEOUL':'stu.sen.go.kr',
# 'INCHEON':'stu.ice.go.kr',
# 'BUSAN':'stu.pen.go.kr',
# 'GWANGJU':'stu.gen.go.kr',
# 'DAEJEON':'stu.dje.go.kr',
# 'DAEGU':'stu.dge.go.kr',
# 'SEJONG':'stu.sje.go.kr',
# 'ULSAN':'stu.use.go.kr',
# 'GYEONGGI':'stu.goe.go.kr',
# 'KANGWON':'stu.kwe.go.kr',
# 'CHUNGBUK':'stu.cbe.go.kr',
# 'CHUNGNAM':'stu.cne.go.kr',
# 'GYEONGBUK':'stu.gbe.go.kr',
# 'GYEONGNAM':'stu.gne.go.kr',
# 'JEONBUK':'stu.jbe.go.kr',
# 'JEONNAM':'stu.jne.go.kr',
# 'JEJU':'stu.jje.go.kr'

# 학교 종류
# 'KINDERGARTEN':'1'
# 'ELEMENTARY':'2'
# 'MIDDLE':'3'
# 'HIGH':'4'

Test Code

Example 1

from tCafeteria import *

cafe = tCafeteria("G100000479", 'DAEJEON', 'MIDDLE')	#탄방중 학교코드, 지역, 학교 종류(중학교)
res = cafe.parseCafeteria()
print(res)

res = cafe.parseSchedule()
print(res)

Example 2

from tCafeteria import *

cafe = tCafeteria("G100000479", 'DAEJEON', 'MIDDLE')	#탄방중 학교코드, 지역, 학교 종류(중학교)
res = cafe.parseCafeteria(return_all=True)
print(res)

res = cafe.parseSchedule(return_all=True)
print(res)

Result

Example 1 -1

{"error":['정보가 없습니다','']}
추석

Example 1 -2

{'lunch': [['흑미밥(중등)', ''], ['돈육김치찌개(중등)', '5.9.10.13.'], ['달걀찜', '1.'], ['얼갈이된장무침', '5.6.'], ['치킨너겟', '1.2.5.6.13.'], ['깍두기(완)', '9.13.']], 'dinner': [['생야채불고기비빔밥', '5.6.10.'], ['쌀밥', ''], ['팽이버섯된장국', '5.6.9.13.'], ['라이스틱', '1.2.13.'], ['백김치(완)', '9.13.'], ['요구르트', '2.']]}

Example 2

{2017: {10: {1: ['정보가 없습니다.', ''], 2: ['정보가 없습니다.', ''], 3: ['정보가 없습니다.', ''], 4: ['정보가 없습니다.', ''], 5: ['정보가 없습니다.', ''], 6: ['정보가 없습니다.', ''], 7: ['정보가 없습니다.', ''], 8: ['정보가 없습니다.', ''], 9: ['정보가 없습니다.', ''], 10: {'lunch': [['흑미밥(중등)', ''], ['돈육김치찌개(중등)', '5.9.10.13.'], ['달걀찜', '1.'], ['얼갈이된장무침', '5.6.'], ['치킨너겟', '1.2.5.6.13.'], ['깍두기(완)', '9.13.']], 'dinner': [['생야채불고기비빔밥', '5.6.10.'], ['쌀밥', ''], ['팽이버섯된장국', '5.6.9.13.'], ['라이스틱', '1.2.13.'], ['백김치(완)', '9.13.'], ['요구르트', '2.']]}, 11: {'lunch': [['콩나물밥', ''], ['콩나물밥', '5.6.13.'], ['다시마무국', '5.6.9.13.'], ['함박스테이크', '2.5.6.10.12.13.'], ['오이생채', '13.'], ['웨지감자', '2.'], ['백김치(완)', '13.']], 'dinner': [['김치알밥', '9.13.'], ['우동', '5.6.9.13.'], ['찹쌀꽈배기', '2.6.13.'], ['키위', ''], ['단무지', '']]}, 12: {'lunch': [['현미밥(중식)', ''], ['짬뽕국', '5.6.9.13.17.'], ['무생채(중등)', '13.'], ['돈까스', '1.2.5.6.10.12.13.'], ['배추김치(완)', '9.13.'], ['청태김자반', '13.']], 'dinner': [['기장밥', ''], ['수제비국', '5.6.9.13.'], ['콩나물무침(고춧가루)', '5.'], ['돈육훈제야채볶음(1003중)', '5.6.10.'], ['배추김치(완)', '9.13.'], ['부추겉절이', '9.13.']]}, 13: {'lunch': [['땡초주먹밥', '1.5.6.10.13.'], ['잔치국수', '1.5.6.'], ['소시지또띠아', '1.2.5.6.9.10.12.13.'], ['배추김치(완)', '9.'], ['요구르트', '2.']], 'dinner': [['불닭마요', '1.5.6.10.13.15.'], ['미역국', '9.13.'], ['비름나물', '5.6.'], ['깍두기(완)', '9.13.'], ['사과쥬스', '13.'], ['갈릭파이', '2.5.6.13.']]}, 14: ['정보가 없습니다.', ''], 15: ['정보가 없습니다.', ''], 16: {'lunch': [['현미밥(중식)', ''], ['두부김치국', '5.6.9.'], ['*폭찹', '1.2.5.6.10.12.13.'], ['새송이부추무침', '5.6.13.'], ['잔멸치꽈리고추볶음(0809중)', '5.6.13.'], ['열무김치(완)', '9.13.']], 'dinner': [['쌀밥', ''], ['치킨마요덮밥', '1.5.6.13.'], ['맑은콩나물국', '5.6.9.13.'], ['오이생채', '13.'], ['핫도그/케첩', '1.2.5.6.10.12.13.'], ['깍두기(완)', '9.13.']]}, 17: {'lunch': [['혼합잡곡밥', '5.'], ['아욱국', '5.6.9.13.'], ['시금치무침', '5.6.'], ['닭매운찜', '5.6.13.15.'], ['두부달걀부침', '1.5.6.'], ['배추김치(완)', '9.13.']]}, 18: ['정보가 없습니다.', ''], 19: ['정보가 없습니다.', ''], 20: ['정보가 없습니다.', ''], 21: ['정보가 없습니다.', ''], 22: ['정보가 없습니다.', ''], 23: {'lunch': [['땡초주먹밥', '1.5.6.10.13.'], ['잔치국수', '1.5.6.'], ['소시지또띠아', '1.2.5.6.9.10.12.13.'], ['배추김치(완)', '9.'], ['요구르트', '2.']]}, 24: {'lunch': [['찰보리밥(중등)', ''], ['김치콩나물국', '5.6.9.13.'], ['*아삭이고추무침', '5.6.'], ['느타리버섯볶음(1005초)', '5.6.13.'], ['반전돈까스', '1.2.5.6.10.13.'], ['열무김치(완)', '13.']], 'dinner': [['쌀밥', ''], ['탄탄멘', '1.2.5.6.9.10.13.'], ['오이무침', '5.6.13.'], ['스팸구이', '6.12.13.'], ['가지구이/양념간장', '5.6.'], ['깍두기(완)', '9.13.']]}, 25: {'lunch': [['비빔밥', ''], ['비빔밥', '5.'], ['미역국', '5.6.9.13.'], ['비빔밥', '5.6.10.'], ['달걀후라이', '1.5.'], ['양념꼬치어묵', '5.6.12.13.'], ['백김치(완)', '9.13.'], ['요구르트', '2.']]}, 26: {'lunch': [['현미밥(중식)', ''], ['열무된장국', '5.6.13.'], ['무말랭이무침', '5.6.13.'], ['감자채볶음', '5.'], ['배추겉절이(완)', '9.13.'], ['상추쌈', '5.6.13.'], ['수육/새우젓/쌈장', '5.6.9.10.13.']], 'dinner': [['삼계탕/영양닭죽', '5.6.15.'], ['배추김치(완)', '9.13.'], ['요구르트', '2.'], ['바나나', ''], ['햄버거', '1.2.5.6.10.12.13.']]}, 27: {'lunch': [['찰보리밥(중등)', ''], ['순두부찌개', '5.6.9.13.'], ['깻잎찜 ', '25.6.'], ['잔멸치꽈리고추볶음(0809중)', '5.6.13.'], ['탕수육', '1.5.6.10.11.12.13.'], ['깍두기(완)', '9.13.'], ['상하이소스', '1.2.5.6.10.12.13.']], 'dinner': [['쌀밥', ''], ['바게트피자', '2.5.6.10.12.13.'], ['짬뽕국', '5.6.9.17.18.'], ['배추김치(완)', '9.13.'], ['요구르트', '2.'], ['단무지', '']]}, 28: ['정보가 없습니다.', ''], 29: ['정보가 없습니다.', ''], 30: {'lunch': [['혼합잡곡밥', '5.'], ['시래기국', '5.6.9.13.'], ['매운돼지갈비찜', '5.6.10.'], ['취나물무침', '5.6.'], ['두부구이', '5.'], ['배추김치(완)', '9.']], 'dinner': [['스팸마요덮밥', '1.5.6.10.13.'], ['어묵국', '5.6.9.13.'], ['오징어초무침', '5.6.13.17.'], ['깍두기(완)', '9.13.'], ['요구르트', '2.']]}, 31: {'lunch': [['새우볶음밥', '2.5.6.9.10.13.'], ['달걀파국', '1.5.6.9.13.'], ['샐러드파스타', '1.2.5.6.12.13.'], ['자장소스', '5.6.10.13.'], ['배추김치(완)', '9.13.'], ['요구르트', '2.']], 'dinner': [['현미밥(중식)', ''], ['두부김치국', '5.6.9.13.'], ['숙주나물무침', '5.6.'], ['닭튀김/양념소스', '5.6.12.13.'], ['깍두기(완)', '9.13.'], ['청태김자반', '13.']]}}}}
{2017: {9: {1: '', 2: '토요휴업일', 3: '', 4: '', 5: '', 6: '대학수학능력시험 모의평가/3\n\n전국연합 학력평가/1/2', 7: '', 8: '', 9: '토요휴업일', 10: '', 11: '', 12: '', 13: '생명존중 및 자살예방교육', 14: '', 15: '', 16: '토요휴업일', 17: '', 18: '', 19: '', 20: '', 21: '', 22: '', 23: '토요휴업일', 24: '', 25: '', 26: '', 27: '', 28: '', 29: '', 30: '토요휴업일', 31: ''}, 10: {1: '', 2: '재량휴업일', 3: '개천절', 4: '추석', 5: '추석연휴', 6: '대체휴일', 7: '토요휴업일', 8: '', 9: '한글날', 10: '', 11: '', 12: '', 13: '', 14: '토요휴업일', 15: '', 16: '', 17: '전국연합 학력평가/3', 18: '기말고사/3\n\n중간고사/1/2', 19: '기말고사/3\n\n중간고사/1/2', 20: '기말고사/3\n\n중간고사/1/2', 21: '토요휴업일', 22: '', 23: '기말고사/3\n\n중간고사/1/2', 24: '', 25: '', 26: '', 27: '학부모 수업공개', 28: '토요휴업일', 29: '', 30: '', 31: ''}, 11: {1: '', 2: '', 3: '', 4: '토요휴업일', 5: '', 6: '', 7: '', 8: '교내 교과경진대회/1/2', 9: '', 10: '', 11: '토요휴업일', 12: '', 13: '', 14: '', 15: '수험생예비소집', 16: '대학수학능력시험', 17: '', 18: '토요휴업일', 19: '', 20: '', 21: '', 22: '전국연합 학력평가/1/2', 23: '', 24: '', 25: '토요휴업일', 26: '', 27: '', 28: '', 29: '흡연예방교육/1/2', 30: '', 31: ''}, 12: {1: '', 2: '토요휴업일', 3: '', 4: '', 5: '', 6: '', 7: '', 8: '', 9: '토요휴업일', 10: '', 11: '', 12: '', 13: '', 14: '', 15: '', 16: '토요휴업일', 17: '', 18: '기말고사/1/2', 19: '기말고사/1/2', 20: '기말고사/1/2', 21: '기말고사/1/2', 22: '', 23: '토요휴업일', 24: '', 25: '성탄절', 26: '', 27: '', 28: '', 29: '', 30: '토요휴업일', 31: ''}, 1: {1: '신정', 2: '', 3: '', 4: '', 5: '겨울방학식', 6: '겨울방학\n\n토요휴업일', 7: '겨울방학', 8: '겨울방학', 9: '겨울방학', 10: '겨울방학', 11: '겨울방학', 12: '겨울방학', 13: '겨울방학\n\n토요휴업일', 14: '겨울방학', 15: '겨울방학', 16: '겨울방학', 17: '겨울방학', 18: '겨울방학', 19: '겨울방학', 20: '겨울방학\n\n토요휴업일', 21: '겨울방학', 22: '겨울방학', 23: '겨울방학', 24: '겨울방학', 25: '겨울방학', 26: '겨울방학', 27: '겨울방학\n\n토요휴업일', 28: '겨울방학', 29: '겨울방학', 30: '겨울방학', 31: '겨울방학'}, 2: {1: '겨울방학', 2: '겨울방학', 3: '겨울방학\n\n토요휴업일', 4: '겨울방학', 5: '개학식/3\n\n겨울방학/1/2', 6: '겨울방학/1/2\n\n졸업식/3', 7: '겨울방학/1/2', 8: '겨울방학/1/2', 9: '겨울방학/1/2', 10: '겨울방학/1/2\n\n토요휴업일', 11: '겨울방학/1/2', 12: '겨울방학/1/2', 13: '겨울방학/1/2', 14: '겨울방학/1/2', 15: '겨울방학/1/2', 16: '겨울방학/1/2', 17: '겨울방학/1/2\n\n토요휴업일', 18: '겨울방학/1/2', 19: '겨울방학/1/2', 20: '겨울방학/1/2', 21: '겨울방학/1/2', 22: '개학식/1/2', 23: '종업식/1/2', 24: '토요휴업일', 25: '', 26: '', 27: '', 28: '', 29: '', 30: '', 31: ''}}}

License

MIT

# -*- coding: utf-8 -*-

# Copyright (c) 2020 chsupark, return0927
# See the file LICENSE for copying permission.
# tCafeteria v1.3
# started by : chsupark | re-arranged by : return0927
# description : 중학교의 급식정보와 학사일정을 파싱해옵니다
# Usage : cafe = tCafeteria("학교코드", "관할지역 코드")
# Required library : datetime, bs4, requests

About

A python library to parse korean school meal/schedule

License:MIT License


Languages

Language:Python 100.0%